我有带有 widgetColumn 的 treePanel,其中包含默认文本的组合框小部件。我的要求是当我选择默认文本时,应将一条新记录插入存储并保存在数据库中。
{
text: 'TC',
dataIndex: 'scrTC',
xtype: 'widgetcolumn',
widget: {
xtype: 'combo',
store: 'TCStore',
valueField: 'id',
displayField: 'name',
matchFieldWidth: false,
listeners: {
select: 'selectDefault'
}
}
}
控制器方法:
selectDefault: function(combo){
loadData(combo, id, name); //there is a logic to get id & name, then pass it to loadData method
}
loadData: function(combo, id, name){
var store = combo.getStore();
store.insert(0,{id: id, name: name});
store.sync();
combo.setValue(id);
}
问题是当我第一次选择默认文本时,存储同步方法不会将数据插入数据库,但组合显示新值并存储新值(使用调试器查看)。当我再次选择时,数据将插入数据库。
我调试了代码,执行流程是正确的,唯一的事情是同步不是在第一次调用后端插入数据,而是在第二次工作。有人可以帮忙吗。