首页 > 代码库 > easyui datagrid columns 如何取得json 内嵌对象(many-to-one POJO class)

easyui datagrid columns 如何取得json 内嵌对象(many-to-one POJO class)

http://www.iteye.com/problems/44119

http://hi.baidu.com/lapson_85/item/7733586e60b08500a1cf0f8d

————————————————————————————————————————————————————————————————————————————————————————

1. json的数据格式:

      var map = {"uname":‘‘,"upwd":‘‘,"role":{“rolename”:‘‘,"roleLevel":‘‘}}

把这个json格式绑定到datagrid的filed属性上:

columns : [ [ 
{
  field : uname,
  title : uname,
width : 200,
rowspan : 2,
align : ‘center‘
},{
  field : upwd,
  title : upwd,
width : 80,
rowspan : 2,
align : ‘center‘
}, {
  field :‘ role.rolename’ ,
  title : ‘角色名称‘,
width : 100,
rowspan : 2,
align : ‘center‘
}, {
  field : ‘role . roleLevel’ ,
  title : ‘等级‘,
width : 80,
rowspan : 2,
value : 1,
align : ‘center‘
  }]]

 

jquery easyui 是不支持嵌套对象的数据转化的。。比如:(role.roleLevel)

我们必须修改源代码:

我的用的是appendRow 和updateRow 2个方法。所以修改这2个方法的赋值地方

如果用到appendRow:

//cc.push(_571[_573]); --源代码    7062行

改为:
cc.push(eval("_571[‘"+_573.replace(/\./g,"‘][‘")+"‘]"));

 

如果用到updateRow :

//cell.html(rows[_57a][_57b]); -- 源代码   7638行

改为:
cell.html(eval("rows[_57a][‘"+_57b.replace(/\./g,"‘][‘")+"‘]"));

 

注意:我的jquery easyui 的版本为1.2.6的版本

 

请加qq群:100969361

 

——————————————————————

    {field:‘productType‘,title:‘产品类别‘,width:160,formatter:function(value,rowData,rowIndex){          //可以试试这个对不对          //return value.prodType;          return rowData.productType.prodType;      }},    

 

easyui datagrid columns 如何取得json 内嵌对象(many-to-one POJO class)