javascript - 商店重新加载后的 Ext 组合框选择无法正常工作

标签 javascript extjs

这是我的组合框配置

{
    xtype : 'combo',
    fieldLabel : 'Select Field',
    displayField : 'field_name',
    valueField : 'field_id',
    id : 'fields_combo_id',
    store: new Ext.data.JsonStore({
         proxy : new Ext.data.HttpProxy({url:eyefind.config.DATA_RETRIEVAL, method:'GET'}),
         baseParams: { subject: 'fields' },
         root: 'data',
         id: 'field_id', 
         fields: ['field_name'],
         autoload: true
     }),

    labelStyle : 'font-weight:bold; width:100px',
    triggerAction : 'all',
    clearFilterOnReset : false,
    mode : 'local'
 }

我以这种方式在外部函数中加载商店:

        .....
        var comboFields = Ext.getCmp('fields_combo_id');
        comboFields.store.load(); 
        comboFields.setValue(selectedFieldId);
        .....

到目前为止 selectedFieldId 已设置,但在可见部分我看到一个值而不是 displayText,商店看起来不错并且我在那里正确设置了 value:displayValue 对。

我是否遗漏了什么或者我是否必须为此部分使用其他功能?

我的版本Ext是 3.2.0。

最佳答案

你设置了valuefield : 'field_id',但是store的fields中没有field_id

{
    xtype : 'combo',
    fieldLabel : 'Select Field',
    displayField : 'field_name',
    valueField : 'field_id', //This 'field_id' must be in store fields too.
    id : 'fields_combo_id',
    store: new Ext.data.JsonStore({
        proxy : new Ext.data.HttpProxy({url:eyefind.config.DATA_RETRIEVAL, method:'GET'}),
        baseParams: { subject: 'fields' },
        root: 'data',
        id: 'field_id', //This id is just for the store, not the record data.
        fields: ['field_id','field_name'], // here, i add `field_id`
        autoload: true // This should be autoLoad, remember JavaScript is case sensitive.
    }),

    labelStyle : 'font-weight:bold; width:100px',
    triggerAction : 'all',
    clearFilterOnReset : false,
    mode : 'local'
}

另外,如果在外部函数中再次加载它,为什么要设置 autoLoad : true

编辑

当我运行 comboFields.setValue(id); 时,我的 id 被分配给字段 id 之一,它起作用了,我在我的组合上看到了显示字段(不需要先下拉).但是,如果在您的情况下,您的组合项目已突出显示,我想这是因为版本。很遗憾 我在 Ext 3.3.0 中测试了它。

关于javascript - 商店重新加载后的 Ext 组合框选择无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6224199/

相关文章:

javascript - fullcalendar.js 如何在周 View 中提前 +4 天显示当前日期并延迟 -2 天

javascript - 使用 javascript/Jquery 获取方括号内的字符串

javascript - JavaScript 有 indexOf(lambda) 或类似的吗?

c# - 在 C# 中计算自 1970 年以来的毫秒数产生与 JavaScript 不同的日期

javascript - Sencha Touch 2 - 使用 MVC 获取表单值

javascript - JavaScript 中的逻辑运算符评估

html - ExtJS 6 图表——改变背景颜色

javascript - ExtJS 4.2 散点图系列

javascript - Uncaught ReferenceError : WebKitPoint is not defined

extjs - 将 Ext.Button 添加到 ExtJS columnmodel