jQuery插件flexigrid改造……

    做毕设用到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"}

 

这样一切都搞定!在前台获取到了“部门名称”。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值