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