jeecg3.5中只有formatter属性,只支持格式化时间格式的数据,不支持自定义格式化列中的值的功能,比如想把列中的的一个int或long型的值除以100转成float或doulbe值,jeecg3.5版本就不支持类似customFormatter这样属性,本文为jeecg3.5增加这个功能,主要修改的代码如下:
org.jeecgframework.tag.core.easyui.DataGridColumnTag
//51行
private String customFormatter;
//190-192行
public void setCustomFormatter(String customFormatter) {
this.customFormatter = customFormatter;
}
//58行
parent.setColumn(title,field,width,rowspan,colspan,align,sortable,checkbox,formatter,hidden,replace,treefield,image,imageSize,query,url,funname,arg,queryMode, dictionary,frozenColumn,extend,style,downloadName,autocomplete,extendParams, customFormatter);
org.jeecgframework.tag.core.easyui.DataGridTag
//257行
String style,String downloadName,boolean isAuto,String extendParams, String customFormater) {
//285行
dataGridColumn.setCustomFormater(customFormater);
//1082-1087行
//自定义格式化数据函数
if (column.getCustomFormater() != null && column.getReplace() == null && column.getDictionary() == null) {
//如果页面上有replace或distionary属性,则不单独单重自定义函数.
sb.append(",formatter:function(value,rec,index){");
sb.append("return ").append(column.getCustomFormater()).append("(value, rec, index);");
sb.append("}");
}
//1101-1125行
if (column.getCustomFormater() == null) {
for(int j = 0; j < value.length; j++){
sb.append("if(valArray[k] == '" + value[j] + "'){ checkboxValue = checkboxValue + \'" + text[j] + "\' + ','}");
}
} else {
for(int j = 0; j < value.length; j++){
sb.append("if(valArray[k] == '" + value[j] + "'){ checkboxValue = checkboxValue + ");
sb.append(column.getCustomFormater()).append("(\'").append(text[j]).append("\') + ','}");
}
}
sb.append("}");
sb.append("return checkboxValue.substring(0,checkboxValue.length-1);");
sb.append("}");
sb.append("else{");
if (column.getCustomFormater() == null) {
for (int j = 0; j < value.length; j++) {
testString += "if(value=='" + value[j] + "'){return \'" + text[j] + "\'}";
}
} else {
for (int j = 0; j < value.length; j++) {
testString += "if(value=='" + value[j] + "'){return ";
testString += column.getCustomFormater() + "(\'" + text[j] + "\')}";
}
}
org.jeecgframework.tag.vo.easyui.DataGridColumn
//39行
private String customFormater;//自定义格式化数据函数
//253-259行
public String getCustomFormater() {
return customFormater;
}
public void setCustomFormater(String customFormater) {
this.customFormater = customFormater;
}
WEB-INF/tld/easyui.tld
<!-- 334-338行-->
<attribute>
<name>customFormatter</name>
<rtexprvalue>true</rtexprvalue>
<description>自定义格式分数据函数</description>
</attribute>
来源:oschina
链接:https://my.oschina.net/u/914897/blog/405050