easyui datagrid columns的field支持属性的子属性(field.jsonfield)支持对象的属性

       所谓为了支持某属性的子属性,主要为了解决。在服务器返回的json格式的数据的某个属性带有自属性,而又需要使用到该子属性作为我们的datagrid的某个字段的。默认情况下datagrid只能支持一级属性字段(属性的属性字段属于二级字段)。
      EasyUI本身是不支持这种方式的,但是现在这种方式还是很常见的,有两个解决方案。
      一是修改原代码即jquery.easyui.min.js文件。
      二是使用formatter函数。采用第二种方式会添加很不方便,需要开发格式化函数,建议采用第一种修改源代码的方式。
      由于EasyUI版本的原因,每个版体修改的地方可能不一样,以下以1.3.3,1.5.2,1.7.0 修改的代码来说明一下。主要查询的方法,查询关键“if(col){”,在原代码中找,出现如下图所示的原代码就可以了,代码中的变量不一样【因版本不同而已】

if(col){
var _8ec=_8e9[_8eb];
var css=col.styler?(col.styler.call(_8e5,_8ec,_8e9,_8e8)||""):"";
var cs=this.getStyleValue(css);
var cls=cs.c?"class=\""+cs.c+"\"":"";
var _8ed=col.hidden?"style=\"display:none;"+cs.s+"\"":(cs.s?"style=\""+cs.s+"\"":"");
cc.push("<td field=\""+_8eb+"\" "+cls+" "+_8ed+">");


1.3.3 版本

        修改jquery.easyui.min.js中第8670行

//var _644=_641[_643];//可能解决问题
var _644=eval("_641['"+_643.replace(/\./g,"']['")+"']");

1.5.2 版本

         修改jquery.easyui.min.js中第11304行 

原始代码

if(col){
var _83e=_83b[_83d];

 修改代码

if(col){
var _83e=undefined;
if(_83b[_83d.split(".")[0]]){
_83e=eval("_83b['"+_83d.replace(/\./g,"']['")+"']");
}else{
_83e=_83b[_83d];
}


 1.7.0 版本

         修改jquery.easyui.min.js中第12223行 

原始代码

if(col){
var _8ec=_8e9[_8eb];

修改代码

if(col){
    var _8ec=undefined;
    if(_8e9[_8eb.split(".")[0]]){
        _8ec=eval("_8e9['"+_8eb.replace(/\./g,"']['")+"']");
    }else{
        _8ec=_8e9[_8eb];
}

其他版本修改的地方,可参考如上传的方法,如果有什么问题,可私信与我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值