1. 程式人生 > >extjs6 清除grid中combo列的值

extjs6 清除grid中combo列的值

{
            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值為空即可。