1. 程式人生 > >讓Ext分頁grid支援分頁記憶選中,可增減。

讓Ext分頁grid支援分頁記憶選中,可增減。

定義全域性變數var drawnArray=[];
給SelectionModel加入監聽事件
var checkbox_sm=new Ext.grid.CheckboxSelectionModel({
        singleSelect: false,
             listeners : {
             rowselect :function(sm,num,record){
                 if(drawnArray.length!=0){
                     for(var i=drawnArray.length-1;i>=0;i--){
                         if(drawnArray[i].data['drawn_serialNumber'(這裡的是你record裡能唯一確定一條記錄名,以下同此,不在做註釋)

]==record.get('drawn_serialNumber')){
                             continue;
                         }else{
                             if(i==0){
                                 drawnArray.push(record);
                             }
                         }
                     }
                 }else{
                     drawnArray.push(record);
                 }
             },
             rowdeselect :function(sm,num,record){
                 for(var i=drawnArray.length-1;i>=0;i--){
                     if(drawnArray[i].data['drawn_serialNumber']==record.get('drawn_serialNumber')){
                         drawnArray.splice(i,1);
                     }
                 }
             }
         }
    });
給grid的store加入監聽事件
gridStore.on('datachanged', function(store) {
          var recordArray=[];
          gridStore.each(function(record) {
              for(var i=0;i<drawnArray.length;i++){
                  if(drawnArray[i].data['drawn_serialNumber']==record.get('drawn_serialNumber')){
                      recordArray.push(record)
                  }
              }
        });
        checkbox_sm.selectRecords(recordArray);
      });

由於初學Ext,寫的還是比較粗糙,在執行效率等一些問題還沒有處理,希望大俠們多給些指點。