我在extjs网格单元格编辑中使用beforeCheckChange
监听器checkColumn
。
一旦取消选中,我想删除此单元格的脏标志。所以我尝试使用单元格"x-grid-dirty-cell"
id删除div
个Cl。
Ext.select("ext-gen2654").removeCls('x-grid-dirty-cell');
以下是听众
listeners: {
beforecheckchange: me.onCheckcolumnBeforeCheckChange
}
onCheckcolumnBeforeCheckChange: function(comp, rowIndex, checked, eOpts) {
Ext.select("ext-gen2654").removeCls('x-grid-dirty-cell');
}
如何仅获取此单元格的div
ID?
如果我们在取消选中后有替代方法可以移除脏记录,请告诉我。
已编辑 - 显示替代记录的复选框
Ext.getCmp('grid').gridColumns[0]= {
xtype: 'checkcolumn',
dataIndex: 'SELECT',
width: 55,
stopSelection: true,
renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
if(row%2==0){ // i need to display alternative checkbox
var cssPrefix = Ext.baseCSSPrefix,
cls = cssPrefix + 'grid-checkcolumn';
if (this.disabled || value == 'N') {
metaData.tdCls += ' ' + this.disabledCls;
}
if (!value) {
cls += ' ' + cssPrefix + 'grid-checkcolumn-checked';
}
return '<img class="' + cls + '" src="' + Ext.BLANK_IMAGE_URL + '"/>';
}
}
,
try listener code to remove dirty mark, but no luck
onCheckcolumnBeforeCheckChange: function(comp, rowIndex, checked, eOpts) {
var store=Ext.getCmp('grid').getStore();
var record= store.getAt(rowIndex);
if(checked==true){
record.dirty= false;
record.commit();
store.commitChanges();
}
答案 0 :(得分:0)
如果要删除整个网格的脏标志,use markDirty
on the grid view:
viewConfig:{
markDirty:false
}
如果只想删除整列的脏标志,只需在列上设置tdCls:
tdCls:'doNotMarkDirty',
并添加以下CSS(在经典主题中测试,其他主题可能不同):
.doNotMarkDirty.x-grid-dirty-cell {
background-image:none;
}
如果要删除整列的脏标志,并且让模型忽略对该列所做的任何更改,请尝试adding a custom isModified
function to the model definition:
isModified:function(dataIndex) {
if(dataIndex=="myDataIndex") return false;
me.callParent(arguments);
}
如果您想让记录知道它不再脏,请查看record.commit()
。