extjs6 清除grid中combo列的值
阿新 • • 發佈:2019-01-04
{
xtype: 'grid',
id: 'gridMatch',
layout: 'fit',
height: 250,
selModel: {
type: 'cellmodel'
},
plugins: {
ptype: 'cellediting',
clicksToEdit: 1
},
store: Ext.create('fieldMatchStore' ),
columns: [
{ xtype: 'rownumberer' },
{ text: '電子錶欄位', dataIndex: 'EField' },
{
text: '資料庫欄位', dataIndex: 'DField',
editor: {
xtype: 'combo',
store: storeField,
emptyText: '--請選擇--' ,
queryMode: 'local',
displayField: 'value',
valueField: 'value',
forceSelection: true,
triggerAction: 'all',
editable: false,
listeners: {
select: function (combo, record, eOpts) {
var fname = record.get('value');
var dfield = record.get('id');
var efield = Ext.getCmp('gridMatch').getSelectionModel().getSelection()[0].data.EField;
post('/fieldmatch/SetMatch', { type: 1, efield: efield, dfield: dfield, fname: fname }, function (data) { }, function () {
combo.clearValue();
var row = Ext.getCmp('gridMatch').getSelectionModel().getSelection()[0];
row.set('DField','');
});
}
}
}
}
]
}
資料庫欄位是一個下拉框,在選擇後會向後臺傳遞資料,在資料庫中檢查是否已有欄位匹配,如果沒有,就正常新增,如果已有就返回錯誤,這時需要清除下拉框的值,用combo.clearValue(),但這樣還是不夠的,還需將這一行的這個單元格給清空,否則會顯示剛選擇的下拉框的值,
var row = Ext.getCmp('gridMatch').getSelectionModel().getSelection()[0];
row.set('DField','');
找到所在行,即當前選擇行,設定該列繫結的model值為空即可。