如何在页面打开后根据条件让EditorGridPanel的某一行的复选框默认选中?

在ExtJS中,若要实现EditorGridPanel加载后根据条件让某一行的复选框默认选中,可以在grid的viewready事件中操作。通过获取store的数据,遍历并比较记录,找到符合条件的记录后,使用CheckboxSelectionModel的selectRecords方法进行选中。例如,此示例中当姓名为'张三'时,对应的行会被选中。
摘要由CSDN通过智能技术生成

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);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值