easyui datagrid columns的field支持属性的子属性(field.jsonfield)支持对象的属性
Posted yqj234
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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];
其他版本修改的地方,可参考如上传的方法,如果有什么问题,可私信与我。
以上是关于easyui datagrid columns的field支持属性的子属性(field.jsonfield)支持对象的属性的主要内容,如果未能解决你的问题,请参考以下文章
easyui datagrid columns sorter 排序
用JavaScript方式创建easyUI datagrid Column Group(列组)
easyui datagrid columns的field支持属性的子属性(field.jsonfield)支持对象的属性
easyui datagrid columns的field支持属性的子属性(field.jsonfield)支持对象的属性
easyui datagrid columns的field支持属性的子属性(field.sonfield形式或者格式化程序形式)