jqueryeasyuidatagrid显示外键/子属性/二层属性的值的方法

数据库中有个学生表student,我使用SSH2框架,通过名为findForPage的action将数据库表student的内容读出,并转为json字符串,输出到页面,然后通过datagrid,将列表显示出来

创新互联建站专注于睢宁县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供睢宁县营销型网站建设,睢宁县网站制作、睢宁县网页设计、睢宁县网站官网定制、成都小程序开发服务,打造睢宁县网络公司原创品牌,更为您提供睢宁县网站排名全网营销落地服务。

首先我们有个表格


  
  

然后在javascript里


$(function(){
$("#tt").datagrid({
url: "findForPage",
title:"学生基本信息管理",
frozenColumns : [ [ {
field : "ck",
checkbox : true
} ] ],
singleSelect : true,
iconCls : "icon-ok",
width : 800,
height : 300,
fit : false,
pageSize : 5,
pageList : [ 5, 10, 15, 20 ],
columns : [ [ {
field : "id",
title : "学号",
align : "center"
}, {
field : "name",
title : "姓名",
align : "center"
}, {
field : "classes",
title : "班级",
align : "center",
formatter:function(value,row,index){
return row.classes.classname;
}
} ] ],
toolbar : [
   {text:"添加", iconCls:"icon-add",handler:function(){openadd();}},
   "-",
       {text:"删除", iconCls:"icon-no",handler:function(){del();}},
   "-",
   {text:"修改", iconCls:"icon-edit",handler:function(){openedit();}}
],
pagination : true
});
});

主要看这几行

{
field : "classes",
title : "班级",
align : "center",
formatter:function(value,row,index){
return row.classes.classname;
}

这里的formatter:function(value,row,index)

之所以在这一列用formatter,是因为此列(classes)是外键列,在持久化类student中是Classes对象,我们要取的是此对象中的classname属性的值。也就是说,在这里是二层属性,或者说是子属性。

对于datagrid来说,子属性是不能直接读出的。即,如果你写field:"classes.classname",是无效的,这时就需要formatter

看后面function括号里的三个参数:value-字段值,row-行记录数据,index-行索引

看function里面我们用的是return row.classes.classname;通过这样读出了这个子属性classname


分享标题:jqueryeasyuidatagrid显示外键/子属性/二层属性的值的方法
标题URL:http://myzitong.com/article/pgesoi.html

其他资讯