2012-08-14 44 views
0

我有一个带有checkboxselectionmodel的网格。在这里我遇到了一个问题,当我取消选择任何选定的记录(仍然选择了一些记录)时,删除按钮将被禁用。当选择任何记录时,我需要将删除按钮设置为启用。 这是事先我使用的代码,EXTJS中支持Multiselect的网格面临的问题

function setDetail(action, r){ 
     switch (action) { 
      case 'update':             
       Ext.getCmp('delete').enable(); 
      break; 
      default: 
       Ext.getCmp('delete').disable(); 
      break; 
     } 
    }; 

    var checkboxselection = new Ext.grid.CheckboxSelectionModel({ 
     singleSelect: false, 
     listeners: { 
     'selectionchange' : function(sm) { 

     }, 
     rowselect  : function(sm, i, r) { 
      selectedRecord.idProperty = r.get('pos'); 
      setDetail('update', r); 
     }, 

     rowdeselect  : function() { 
      setDetail(); 
     } 

     } 
    }); 

Thankz ....

回答

0
rowdeselect  : function() { 
     setDetail(); 
    } 

这部分禁用您的删除按钮时,你甚至取消单个复选框。代码工作正常。你的逻辑在这里是错误的。您可以通过维护一个基于每个复选框选择而改变的计数器来实现。 (如果选中则为+1,如果未选中则为-1),并在基于计数器的setDetail方法中启用或禁用Delete按钮。