如何在頁面打開後根據條件讓EditorGridPanel的某一行的複選框默認選中?

this.sm.selectAll()等選中方法放在grid的render和afterrender,store的load事件中都沒效果,最後使用的是grid的viewready

extjs代碼如下:

Ext.onReady(function() {  
  var rownumber = new Ext.grid.RowNumberer({
   header:"序號",
   width:50
  });
  
    var data2 = [{id:"S1",name:"張三",sex:"男",bornDate:"1994-03-03"},{id:"S2",name:"李四",sex:"女",bornDate:"1990-13-03"}];
    var store2 = new Ext.data.JsonStore({
     autoLoad:false,
     //data:data2,
     fields:["id","name","sex",{type:"date",name:"bornDate",dateFormat:"Y-n-j"}]
    });
    var data3 = [[1,"男"],[2,"女"]];
    var store = new Ext.data.ArrayStore({
     data :data3,
     fields:["id","sex"]
    });
  var sexCombo = new Ext.form.ComboBox({
   transform:"sexList",
   triggerAction:"all",
   lazyRenderer:true
  });
  this.sm = new Ext.grid.CheckboxSelectionModel();
    var columnModel2 = new Ext.grid.ColumnModel([
   rownumber,this.sm,{header:"學號",dataIndex:"id"},
   {header:"姓名",dataIndex:"name",sortable:true,editor:new Ext.form.TextField()},
     {header:"性別",dataIndex:"sex",editor:sexCombo},
     {header:"出生日期",dataIndex:"bornDate",renderer:Ext.util.Format.dateRenderer("Y年m月d日"),editor:new Ext.form.DateField({format:'Y年m月d日'})}
    ]);
    var grid3 = new Ext.grid.EditorGridPanel({
   title:"可編輯Grid",
   width:300,
   height:200,
   store:store2,
   cm:columnModel2,
   sm:this.sm,
   renderTo:"grid3"
    });
    grid3.on("viewready",function(grid){
   var rows = grid.store.getCount();
   var records = [];
   for(var i =0;i<rows;i++){
    var record = grid.store.getAt(i);
    if(record.data.name=="張三"){
     records.push(record);
    }
   }
   this.sm.selectRecords(records);
    },this);
    store2.loadData(data2);
});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章