首页 > 代码库 > 让datagrid中的columns属性支持对象的子属性(类似user.userName)的方法
让datagrid中的columns属性支持对象的子属性(类似user.userName)的方法
前台的datagrid的columns属性如下:(请看红色字体部分)
columns : [ [ { //每列上的属性、名称设置
title : ‘编号‘,field : ‘userInfoId‘,
width : 100,
sortable : true
},{
title : ‘姓名‘,
field : ‘userInfoName‘,
width : 100,
sortable : true
},{
title : ‘密码‘,
field : ‘userInfoPassword‘,
width : 100
},{
title : ‘角色‘,
field : ‘tbRole‘,
formatter : function(value,row,index){
if (row.tbRole){
return row.tbRole.roleName;
} else {
return value;
}},
width : 100
}] ]
说明: 我的后台传给前台datagrid的数据有total和rows,它们的格式如下:
rows具体格式如下:
即rows里面的每个对象都有tbRights、tbRole、userInfoId、userInfoName、userInfoPassword这几个属性,而属性tbRole本是一个对象,里面有roleId、roleName、tbUserinfos这几个对象。现在需要把tbRole里面的roleName给显示出来,因为直接在field中这样写 fileld:"field:tbRole.roleName‘,这样在前台是显示出不来这一列的,因为fileld的格式不支持点操作符的用法。所以应该用easyui的api中的datagrid自带的一个格式化函数formatter(),formatter的具体说明请查阅api
{
title : ‘角色‘,
field : ‘tbRole‘,
formatter : function(value,row,index){
if (row.tbRole){
return row.tbRole.roleName;
} else {
return value;
}},
width : 100
}
让datagrid中的columns属性支持对象的子属性(类似user.userName)的方法