2016-03-17 65 views
0

我在使用beforeCheckChange侦听器对checkColumn进行了extjs网格单元格编辑。在extjs网格单元格编辑中使用beforecheckchange侦听器获取单元格ID

一旦取消选中,我想删除此单元格的脏标志。所以我试图删除"x-grid-dirty-cell" Cls,使用单元格div id。

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为仅此电池?

让我知道如果我们有任何其他选项可以在取消选中后删除脏记录。

Edited-显示复选框替代记录

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

如果你要删除的脏标志为整个网格,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()

+0

感谢您的详细信息。基本上我不想禁用此列的脏标记。我正在使用checkcolumn显示复选框。当我检查checobox它显示脏标记,但是当我取消选中时,它仍然显示脏标记。所以当我试图手动删除脏标记时,我不选中它。 – Raje

+0

然后你的输入数据有问题。请尝试将模型的字段标记为“type:'boolean''和/或添加'defaultValue:false'。 – Alexander

+0

我已将我的代码添加到显示复选框 – Raje

相关问题