Sencha touch 选择sencha touch中的字段';不尊重空值

Sencha touch 选择sencha touch中的字段';不尊重空值,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我注意到ST2和selectfield选择器存在问题。我正在桌面浏览器和平板电脑上测试这一点,两者似乎都显示出相同的问题 问题似乎源于表单数据为空或未初始化。 我的例子是一个用户登录到他们的帐户,需要设置他们的婚姻状况。因为在他们的婚姻状况的支持存储模型实际为“null”之前,从未设置过该值。当他们单击选取器时,出于某种原因,选取器会自动选取清单中的第一项。项目右侧的复选标记表明了这一点。第二个副作用是,如果选择第一个项目,ST2不会将其视为项目更改,因此不会将选择更改传播回表单 这是虫子吗?我

我注意到ST2和selectfield选择器存在问题。我正在桌面浏览器和平板电脑上测试这一点,两者似乎都显示出相同的问题

问题似乎源于表单数据为空或未初始化。 我的例子是一个用户登录到他们的帐户,需要设置他们的婚姻状况。因为在他们的婚姻状况的支持存储模型实际为“null”之前,从未设置过该值。当他们单击选取器时,出于某种原因,选取器会自动选取清单中的第一项。项目右侧的复选标记表明了这一点。第二个副作用是,如果选择第一个项目,ST2不会将其视为项目更改,因此不会将选择更改传播回表单

这是虫子吗?我如何避开这个问题

Ext.define('Gender', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            {name: 'Id', type: 'int'},
            {name: 'ItemName',  type: 'string'}           
        ]
    }
});

Ext.define('Details', {
    extend: 'Ext.data.Model',
    config: {
        fields: [       
            {name: 'Gender',  type: 'int'}           
        ]
    }
});

var myGenderStore = Ext.create('Ext.data.Store', {
    model: 'Gender',
    data : [
        {Id: 1, ItemName: 'Male'},
        {Id: 2, ItemName: 'Female'}
    ]   
});

var myDetailsStore = Ext.create('Ext.data.Store', {
    model: 'Details',
    data : [
        { Gender: null }        
    ]   
});

var p = Ext.create('Ext.form.Panel', {
    fullscreen: true,
    items: [
        {
            xtype: 'fieldset',
            title: 'Select',
            items: [
                {
                    xtype: 'selectfield',
                    label: 'Choose one',
                    displayField: 'ItemName',
                    valueField: 'Id',
                    store: myGenderStore,
                    name: 'Gender'
                }
            ]
        }
    ]
});

p.setRecord(myDetailsStore.getAt(0))
Ext.Viewport.setActiveItem(p);
// notice the picker has 'Male' selected even though the backing store for the Gender field is null
// also, we want to select Male from the list, but this isn't reflected on the form
// run below command in console window after selecting 'Male' even though it is selected and it shows null
// It only seems to like changes to the value as selecting female works. If then select Male from Female this also works.
p.getValues().Gender;

可以为“选择”字段设置值

 p.down('selectfield[name=Gender]').setValue(myGenderStore.getAt(0).get('Id'))
见示例:


谢谢

只需将自动选择配置属性设置为,以防止出现如下默认选择:

 {
                    xtype: 'selectfield',
                    label: 'Choose one',
                    displayField: 'ItemName',
                    valueField: 'Id',
                    store: myGenderStore,
                    name: 'Gender',
                    autoSelect:false
                }

为了更好地理解您的问题,请发布您的代码。Hi sai,我添加了一个代码示例来说明问题。不确定我是否错过了一些很明显的东西?!?当我运行此命令时,表单上选定的字段为“男性”。它不应该被设置为任何东西吗?试试这个如果你不想选择性别试试这个链接谢谢,我想在选择列表中只选择我想要的选项,没有“空”选项,也没有带勾号的选项。这可能吗?