? ? ? ?所谓为了支持某属性的子属性,主要为了解决。在服务器返回的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];
}
其他版本修改的地方,可参考如上传的方法,如果有什么问题,可私信与我。
|