在编辑extjs网格行之前调用的组合框的组合值在4.2中有效但在6.2中没有

时间:2016-09-29 09:54:06

标签: extjs extjs4.2 extjs6

在beforeedit函数中调用的

combo.setvalue(id)在4.2中编辑时显示显示值,但在6.2中显示为空。

combo.getStore().load();
combo.getStore().on('load', function(){combo.setvalue(id)})

正在6.2中工作,但在准备好编辑行之后需要时间。

1 个答案:

答案 0 :(得分:0)

尝试使用它,存储从4.2变为6.2非常困难,也许你的加载在onload listener设置之前完成。

combo.getStore().load(function(){
   combo.setValue(id);
});

组合框也应该由valuefield设置,因此如果设置正确,请在组合配置中读取。如果您不必使用valuefield,可以使用

combo.setRawValue(id);

More specified example

    // The data store containing the list of states
var states = Ext.create('Ext.data.Store', {
    fields: ['abbr', 'name'],
    data : [
        {"abbr":"AL", "name":"Alabama"},
        {"abbr":"AK", "name":"Alaska"},
        {"abbr":"AZ", "name":"Arizona"}
    ]
});

// Create the combo box, attached to the states data store
Ext.create('Ext.form.ComboBox', {
    fieldLabel: 'Choose State',
    store: states,
    queryMode: 'local',
    displayField: 'name',
    valueField: 'abbr',
    listeners:{
      render: function(combo){
          combo.setValue('AL');
      }  
    },
    renderTo: Ext.getBody()
});