easyui单元格格式化

        作为一个刚刚毕业入门的菜鸟,在我参与的第一真实的商业项目中,遇到了不少的困难,特别是前端的框架。在我的第一个真实商业项目中,前端框架主要用easyui,在这几天的使用中,用到了几个datagrid单元格格式化的方法,在此做一下记录,慢慢积累,也希望能帮到刚刚入门的小伙伴们。

       具体问题是这样的,当多个表关联的时候,我们要在datagrid中显示主表,而要显示的主表引用了另外一个表的id,这个时候datagrid中显示出来的就是另外一个表的id,而我们要的是把另外一个表的记录的name显示出来,这个时候formatter就派上用场了。具体来看看代码:

             <t:dgCol  title="业务名称" field="targetName"   width="120"  ></t:dgCol>
            <t:dgCol  title="业务周期" field="targetCycle"  width="60"></t:dgCol>
            <t:dgCol  title="业务来源" field="departId"     width="150"  customFormatter="findDepartNameById" ></t:dgCol>

//自定义的formatter函数
 function  findDepartNameById(value,rec,index){
     var departName="";
     $.ajax({
          async:false,
          type: "POST",  
          dataType: "json",
          url: "${module}${name}Controller.html?findDepartNameById&id="+value,
          success: function(data){
              if(data.success==true){
                  DepartName=data.obj;
              }
          }
    });
     return '<span title="">'+departName+'</span>';     
 }

上面的findDepartNameById函数写在<script>中,需要注意的是此方法有三个参数,分别是value、rec、index。

         value代表了当前行当前单元格里的值,在这里代表的是当前行的departid这个字段的值。

        rec代表这个行,如果我们把这个行的内容看成一个对象的话,那么rec.字段  就能获得字段的值,如rec.targetName。

        index代表了当前行的行号,这个不用多说。

在这个函数中我们通过主表中存储的departid去把数据查出来,当datagrid加载数据的时候,会逐行替换掉departid的值显示为departName的值。

在去查找数据的过程中特别要注意ajax方法里的async属性设置,一定要设置为false,(同步),也就是当datagrid加载一行数据的时候ajax函数请求一次,这个才能保证departid被正确替换掉。当然若果datagrid要加载的行数比较多的话,对性能可能会有一定影响。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值