2012-08-14 58 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按鈕。