1、JSON数据为:

{

    "total":28, "rows": [

    {

      "itemNo": "1",

      "itemName": "12",

      "spec": "",

      "pattern": "",

      "itemCategory": {

        "id": "A01",

        "name": "中药"

      },

      "itemUnit": {

        "id": "B01",

        "name": "公斤"

      },

      "uploadFileName": null

    },

  ],



}

2、其相应的java类为:

public class PageModel<T> {



//结果集

private List<T>
rows;

private int total;



//getter and setter methods



}

注意:因为EasyUI中的datagrid组件处理该数据时,默认都是使用rows属性和total属性的,所以为了json数据符合要求,java类中的list属性名比方为rows,list个数的属性名必须为total。

for(var i=0;i<rows.length;i++){

...

}

3、List中的class例如以下:

public class Item {

private String itemNo;



private String itemName;



private String spec;



private String pattern;



private ItemCategory itemCategory;



private ItemUnit itemUnit;



private String uploadFileName;

//getter and setter methods

}

public class ItemCategory {

 

private String id; 



private String name;

//getter and setter methods

}

public class ItemUnit {

 

private String id; 



private String name;

//getter and setter methods

}

4、SpringMVC中处理showJSON的Controller:

@ResponseBody

protected Object showJson(HttpServletRequest request, HttpServletResponse response)

throws Exception {



PageModel pageModel = get_page_model_from_database();

return pageModel;

}

直接返回PageModel 对象,@ResponseBody注解会自己主动调用JSON库将其转换成JSON格式的数据,即本文开头的数据;

5、datagrid中载入数据

//载入数据  

$('#Ajax').datagrid({

fit:true,

fitColumns:true,

width: 'auto',  

height:300,               

striped: true,  

singleSelect : true,  

url:'item.do',  

//POST parameters: command=showJson

queryParams:{

command: 'showJson'

},  

loadMsg:'数据载入中请稍后……',  

pagination: true,  

rownumbers: true,     

columns:[[  

{field:'itemNo',title: '物料代码',align: 'center',width: 100,  

formatter:function(value,row,index){  

//alert("itemNo: "+value+" "+row.itemNo+" "+index);  

return "<a href='item.do?

command=showDetail&itemNo="+value+"'>"+value+"</a>";

  }  

},  

{field:'itemName',title: '物料名称',align: 'center',width: 100},  

{field:'spec',title: '
物料规格',align: 'center',width: 100},  

{field:'pattern',title: '物料型号',align: 'center',width: 100},

{field:'itemCategory',title: '类别',align: 'center',width: 100,

formatter:function(value,row,index){

var ret="";



if(value != null) {

ret = value.name;

//alert("itemCategory.id="+value.id+" name="+value.name);

}

return ret;

}



},

{field:'itemUnit',title: '计量单位',align: 'center',width: 100,

formatter:function(value,row,index){

var ret="";



if(value != null) {

ret = value.name;

//alert("itemCategory.id="+value.id+" name="+value.name);

}

return ret;

}



},                                  

    

                  

]]  

});

处理简单数据,比方 "itemNo": "1"时直接使用{field:'itemNo',title: '物料代码',align: 'center',width: 100}就可以载入数据。

但处理复杂数据,比方

"itemCategory": {

        "id": "A01",

        "name": "中药"

      },

则须要使用formatter属性来载入。代码例如以下:

{field:'itemCategory',title: '类别',align: 'center',width: 100,

formatter:function(value,row,index){

var ret="";



if(value != null) {

ret = value.name;

//alert("itemCategory.id="+value.id+" name="+value.name);

}

return ret;

}



},

关于datagrid formatter属性的描写叙述參考:http://www.jeasyui.com/documentation/index.php#

The cell formatter function, take three parameters:

value: the field value.表示当前field相应的值。能够是一个简单对象。如一个字符串,也能够是一个复杂对象。相应一个java类

row: the row record data.表示当前行相应的整个对象,相当于json数据中的rows[i]对象(i为当前行的index),能够使用row.itemNo訪问JSON数据中的rows[i].itemNo对象。使用row.itemCategory.id訪问JSON数据中的rows[i].itemCategory.id对象。

index: the row index.行号。第一行的行号为0

Code example:

$('#dg').datagrid({
columns:[[
{field:'userId',title:'User', width:80,
formatter: function(value,row,index){
if (row.user){
return row.user.name;
} else {
return value;
}
}
}
]]
});

Jquery easyUI datagrid载入复杂JSON数据方法的更多相关文章

  1. jQuery EasyUI datagrid实现本地分页的方法

    http://www.codeweblog.com/jquery-easyui-datagrid%e5%ae%9e%e7%8e%b0%e6%9c%ac%e5%9c%b0%e5%88%86%e9%a1% ...

  2. jquery easyui datagrid 远程加载数据----javascript法

    jquery easyui有三种办法生成datagrid(数据网格),本篇专门讨论javascript借助jquey easy ui实现的方式 html部分 <main role="m ...

  3. jquery easyui datagrid 远程加载数据----把主键渲染为值遇到的问题及解决方案

    起因:数据库中一些字段存的是代表具体值的数字,需要渲染为具体值 monggodb中的字典 mysql中存放的值为:expertin代表教练擅长的搏击技能 jquery easyui中的相关代码如下:用 ...

  4. Easyui datagrid 绑定本地Json数据

    var jsonstr = '{"total":1,"rows":[{"id":"M000005","name ...

  5. (转)扩展jquery easyui datagrid 之动态绑定列和数据

    本文转载自:http://blog.csdn.net/littlewolf766/article/details/7336550 easyui datagrid 不支持动态加载列,上次使用的方法是自己 ...

  6. jQuery EasyUI DataGrid Checkbox 数据设定与取值

    纯粹做个记录,以免日后忘记该怎么设定. 这一篇将会说明两种使用 jQuery EasyUI DataGrid 的 Checkbox 设定方式,以及在既有数据下将 checked 为 true 的该笔数 ...

  7. 用easyui从servlet传递json数据到前端页面的两种方法

    用easyui从servlet传递json数据到前端页面的两种方法 两种方法获取的数据在servlet层传递的方法相同,下面为Servlet中代码,以查询表中所有信息为例. //重写doGet方法 p ...

  8. jquery easyui datagrid 获取Checked选择行(勾选行)数据

    原文:jquery easyui datagrid 获取Checked选择行(勾选行)数据 getSelected:取得第一个选中行数据,如果没有选中行,则返回 null,否则返回记录. getSel ...

  9. 扩充 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)

    客户需求: jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) 如图所示,Datagrid 鼠标悬停/离开数据行时 ...

随机推荐

  1. CentOS,Fedora,Debian,Ubuntu,SuSE——我到底爱谁

    主观情绪上,一直都不是特别喜欢RedHat,虽然它是毋庸置疑的老大,其实我并不介意有人说我肤浅,说这话的理由简单,redhat.com发布RedHat 9(简写为RH9)后,不再开发RedHat 10 ...

  2. EntityFramework:值语义的实体如何修改?

    背景 现在很流行值对象,值对象有如下特点:开发简单.使用简单和多线程安全.我试着让 EntityFramework 中的实体保持值语义,这样的话,对值语义实体的修改就应当等于“整体替换”,好像有点问题 ...

  3. PHP:IIS下的PHP开发环境搭建

    背景 发现书柜中有好几本PHP的图书,决定还是学学PHP,本文介绍一下在Windows环境下PHP开发环境的搭建. 运行环境搭建 下载和安装下面三个软件: IIS. http://php.iis.ne ...

  4. Struts2数据验证机制

    1. 手动验证的实现 只需要在继承ActionSupport类的情况下,直接重写validate()方法即可.使用validate()方法可以对用户请求的多个Action方法进行验证,但其验证的逻辑是 ...

  5. Power Desginer系列01【转摘】

    近期在做一个业务系统的分析和数据模型设计,工作这几年也做过好几个项目的数据库模型的设计,期间也算是积累了一定的经验吧,这次有机会就写写我的数据库模型设计过程与方法. 在 数据库设计中,设计的目标就是要 ...

  6. poj2142 The Balance 扩展欧几里德的应用 稍微还是有点难度的

    题目意思一开始没理解,原来是 给你重为a,b,的砝码 求测出 重量为d的砝码,a,b砝码可以无限量使用 开始时我列出来三个方程 : a*x+b*y=d; a*x-b*y=d; b*y-ax=d; 傻眼 ...

  7. drawable和values的加载规则

    Google搞了一大套hdpi.xhdpi之类的这些东西,简单说来,就是为了让我们轻松实现"与设备密度无关的视觉大小一致性",注意这里的"视觉大小一致性",就是 ...

  8. SpringMVC使用ModelAndView进行重定向

    1.Servlet重定向forward与redirect: 使用servlet重定向有两种方式,一种是forward,另一种就是redirect.forward是服务器内部重定向,客户端并不知道服务器 ...

  9. Mongodb 常用命令2

    1.把一个collection里面的数据复制到另一个collection中,比如category集合中数据备份到category_clone中 db.category.find().forEach(f ...

  10. Thinkphp学习笔记-删除缓存

    Thinkphp的缓存数据在Cach文件夹下的Home文件夹下的文临时文件 清除方法:将缓存文件删除就可以了