extjs grid checkbox 預設選中

來源:互聯網
上載者:User
extjs grid checkbox 預設選中

(2010-04-01 16:21:05)

轉載
標籤:

extjscheckboxit
分類:extjs
var sm2= new Ext.grid.CheckboxSelectionModel({
                   singleSelect:this.is_singleSelect,
                    renderer:this.checkboxRenderer.createDelegate(this) //注意添加這個renderer
 });           
           this.grid = new Ext.grid.GridPanel({//列表
                        border:false,  
                        height:300,
                        store: ds,
                        cm: colModel,
                        sm: sm2,
            });
//定義renderer
checkboxRenderer:function(value, cellmeta, record,rowIndex, columnIndex, store){
         var row =  this.grid.getStore().getById(record.id);
         var id = row.get(this.id_key); //this.id_key 是一行的key 這樣,可以根據這一行資料確定是否需要預設選擇或根本就不出現選擇框。
         var isSelect = false;
//選中邏輯
        if(!isSelect){
            return '<div  class="x-grid3-row-checker">&nbsp;</div>';
        }else{
            return '';
        }
                
  },
Ext.onReady(function() {  var testData = [    ['1','xxxxx'],    ['2','aaaa'],    ['3','xxyyy'],    ['4','bbbb']  ];  var selectValue = ['bbbb','aaaa']var store = new Ext.data.SimpleStore({      fields:['id','name']});  var sm = new Ext.grid.RowSelectionModel({    listeners:{      'rowselect':function(sm,rowIndex,r){        Ext.log("select",rowIndex,r.get('name'))      }    }  });var grid = new Ext.grid.GridPanel({    width: 800,    height: 500,    autoScroll: true,    store: store,      sm:sm,    columns: [        sm,        { header: '序號', dataIndex: 'id', sortable: true },        { header: '名字', dataIndex: 'name', sortable: true }    ]});  var v = new Ext.Viewport({    items:[grid]  });  store.on('load',function(store,records,options){    var arr=[];    for(var i=0;i<records.length;i++){      var record = records[i];      var isMatch = selectValue.indexOf(record.get('name'))!=-1;      if(isMatch){        arr.push(record);      }    }    sm.selectRecords(arr);  },this,{delay:1000})  store.loadData(testData);});

提問者對於答案的評價:
確實是需要延時,謝謝你了~~

其他回答

Ext.grid.CheckboxSelectionModel 是繼承Ext.grid.RowSelectionModel的.
看下API:
selectRecords( Array records, [Boolean keepExisting] ) : void
Select records.

Parameters:

records : Array
The records to select

keepExisting : Boolean
(optional) True to keep existing selections
Returns:
void

你可以在store的load事件裡面,遍曆尋找你要的record,
然後執行grid.getSelectionModel().selectRecords(

var sm = grid. getSelectionModel();//獲得選擇模型sm.selectAll();sm.selectFirstRow();sm.selectLastRow();selectNext();selectPrevious();selectRange( Number startRow, Number endRow, [Boolean keepExisting] ) ;selectRecords( Array records, [Boolean keepExisting] );selectRow( Number row, [Boolean keepExisting] );

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.