jQuery插件flexigrid改造……
2010-04-10 22:56
501 查看
做毕设用到flexigrid这个插件,但是遇到种种问题!呃,说不太明白,还是用代码说话吧!
后台代码:
private List《RlEmployee》 rows;
这个就是要在前台显示的rows。但是问题是我的RlEmployee是这样的:
private Integer empId;
private RlDepartment rlDepartment;
private RlPosition rlPosition;
private String empUserName;
……略
这里又有两个对象,就是RlDepartment 和RlPosition ,分别代表“部门”和“职位”,也就是我数据库中表之间的关系,这些pojo是用hibernate自动生成的。在数据库中RlEmployee这张表之存了“部门ID”和“职位ID”。这两个POJO如下:
RlDepartment :
private Integer depId;
private String depName;
private Integer parentId;
private String remark;
RlPosition 略。大致差不多。
现在问题是我在前台想输出“部门名称----depName这个属性”。
原本以为在前台 colModel中这么定义即可:{display : "部门", name : "rlDepartment.depName", width : 100, sortable : true}
但是flexigrid根本就不支持这种写法……所以就想通过process里写方法来达到目的,但是失败了……所以就看了下flexigrid的源码。发现只要在tdVal.push(y)之前再进行遍历一遍即可……
讲flexigrid的源代码改了两处:
1.
// 取列名
var seleceName = cm.name;
//在这里加上下句,然后在colModel中加入subname这个属性,表示需要获取的对象中的属性名。
var subName = cm.subname;
2.
// 过滤key
$.each(data.rows[i], function(x, y) {
if (seleceName == x) {
//这里再进行了2次遍历
/**
* 判断y是不是对象,如果是对象就再次进行遍历,在colModel中加入
* 属性subname,表示需要获取的对象中的属性。
*/
if(typeof(y)=='object'){
if(y != null){
$.each(y, function(x, y) {
if(subName == x){
tdVal.push(y);
}
});
}
}else{
tdVal.push(y);
}
}
})
然后再把colModel改为 {display : "部门", name : "rlDepartment",subname:"depName"}
这样一切都搞定!在前台获取到了“部门名称”。
后台代码:
private List《RlEmployee》 rows;
这个就是要在前台显示的rows。但是问题是我的RlEmployee是这样的:
private Integer empId;
private RlDepartment rlDepartment;
private RlPosition rlPosition;
private String empUserName;
……略
这里又有两个对象,就是RlDepartment 和RlPosition ,分别代表“部门”和“职位”,也就是我数据库中表之间的关系,这些pojo是用hibernate自动生成的。在数据库中RlEmployee这张表之存了“部门ID”和“职位ID”。这两个POJO如下:
RlDepartment :
private Integer depId;
private String depName;
private Integer parentId;
private String remark;
RlPosition 略。大致差不多。
现在问题是我在前台想输出“部门名称----depName这个属性”。
原本以为在前台 colModel中这么定义即可:{display : "部门", name : "rlDepartment.depName", width : 100, sortable : true}
但是flexigrid根本就不支持这种写法……所以就想通过process里写方法来达到目的,但是失败了……所以就看了下flexigrid的源码。发现只要在tdVal.push(y)之前再进行遍历一遍即可……
讲flexigrid的源代码改了两处:
1.
// 取列名
var seleceName = cm.name;
//在这里加上下句,然后在colModel中加入subname这个属性,表示需要获取的对象中的属性名。
var subName = cm.subname;
2.
// 过滤key
$.each(data.rows[i], function(x, y) {
if (seleceName == x) {
//这里再进行了2次遍历
/**
* 判断y是不是对象,如果是对象就再次进行遍历,在colModel中加入
* 属性subname,表示需要获取的对象中的属性。
*/
if(typeof(y)=='object'){
if(y != null){
$.each(y, function(x, y) {
if(subName == x){
tdVal.push(y);
}
});
}
}else{
tdVal.push(y);
}
}
})
然后再把colModel改为 {display : "部门", name : "rlDepartment",subname:"depName"}
这样一切都搞定!在前台获取到了“部门名称”。
相关文章推荐
- 玩转jquery插件之flexigrid(二)来点改造如何?【补充】
- 深度改造的基于JQuery的Flexigrid插件
- 基于jQuery的FlexiGrid的插件使用和改造
- 玩转jquery插件之flexigrid(二)来点改造如何?
- 使用jQuery插件flexigrid搭建项目框架
- jQuery插件flexigrid使用总结
- Jquery报表Flexigrid插件扩展—增加汇总行
- jquery demo - jquery表格插件flexigrid的java简单应用实例
- JQuery 插件:flexigrid
- 玩转jquery插件之flexigrid
- jQuery改造插件,添加回调函数
- Jquery插件flexigrid的参数说明
- 基于jQuery的GridView-FlexiGrid的使用和改造(1)--如何使用,完全参数说明
- jQuery插件之我的flexiGrid
- 一款Jquery 分页插件的改造方法(服务器端分页)
- Jquery 的 Flexigrid插件 应用(1)
- jQuery插件flexigrid使用总结
- 【jQuery插件】flexigrid
- jquery demo - jquery表格插件flexigrid的java简单应用实例
- jQuery插件flexiGrid的完全使用,附代码下载