ExtJS中GridPanel默认选中某些列 解决方法:

时间:2021-09-11 19:25:08

ExtJS中GridPanel默认选中某些列

解决方法:

filterItem_grid.getSelectionModel().selectRow(rowIndex,true);  

filterItem_grid为默认的grid名,rowIndex表示被选中的列号(第几行被选中,开始行=0)

 

示例:

{dataIndex : 'selectFlag',header:'是否选中',sortable:true,     
    renderer: function(v, metaData, record, rowIndex, colIndex, store) {
         if(v==1){ // 选择逻辑   --- 该值==1选中,否则不处理
                filterItem_grid.getSelectionModel().selectRow(rowIndex,true);
         }
         return v;
     }
  }

 

如果不想使用该列的值做判断,也可以在其他列的的时候做判断,只需要根据

renderer: function(v, metaData, record, rowIndex, colIndex, store) {
       if(record.data['selectFlag']==1){ // 选择逻辑 --- 该值==1选中,否则不处理
             filterItem_grid.getSelectionModel().selectRow(rowIndex,true);
       }
       return v;
}

 

注意: --  第二个参数一定要选中哦

selectRow( Number row , Boolean keepExisting ) : void 

选择一行。Selects a row. 选择一行。Selects a row. 参数项:

row : Number 

要选择行的索引。The index of the row to select 

keepExisting : Boolean 

(optional) (可选的)表示为保持现有的选区。True to keep existing selections 

2.具体的应用,我加了 ajax做了相应的业务处理。columns : [{
header : 'roleCode',
width : 30,
hidden : true,
dataIndex : 'roleCode',
renderer : function(v, metaData, record, rowIndex, colIndex,
store) {
var userNo_ = Ext.getCmp("RightUserNo_Id").getValue();
var oldCodes_ = [];
// 动态返回当前用户拥有哪些角色信息
Ext.Ajax.request({
method : 'POST',
url : context
+ '/mainManage/roleManager_doShowRightCurrentUsersOwnRoles.action?userNo='
+ userNo_,
success : function(response, opts) {
// 处理后
var roleCodes = Ext.decode(response.responseText);
if (isNotVal(roleCodes)) {
Ext.Array.each(roleCodes, function(name, index,
countriesItSelf) {
code_ = roleCodes[index].roleCode;// 当前tab对象
oldCodes_.push(code_);
if (record.data['roleCode'] == code_) { // 选择逻辑
Ext.getCmp("RightRoleInfoGridPanel_Id").getSelectionModel().select(rowIndex, true);
}
});
var oldCodes_Ids = "" + oldCodes_.join(",");
//Ext.Msg.alert("msg",oldCodes_Ids);
Ext.getCmp("RightOldRoleCodes_Id").setValue(oldCodes_Ids);
}
},
failure : function(response, opts) {
Ext.Msg.alert("信息提示", "后台获取数据失败!");
}
});


return v;
}


}, {
header : '角色列表',
width : 400,
dataIndex : 'roleName'
}]
});