|
1.在部门表中,系统提供的功能只有序号,名称,说明,上下级功能,展示使用的是treegrid控件,但是treegrid控件还具有显示其他数据功能,我想扩展该功能,显示如负责人,或者办公室联系电话等信息。
2.在TreeGridModel中增加(private String attributes;// 其他参数)属性,用来表示附加字段,多个字段使用逗号分隔。
3.在DepartController中的departgrid中增加(treeGridModel.setAttributes("fzr, lxdh");)。
4.在CommonDao中的treegrid中增加(
if(StringUtils.isNotEmpty(treeGridModel.getAttributes())){
@SuppressWarnings("unchecked")
Map<String,String> attributes = new HashMap<String, String>();
String[] fields = treeGridModel.getAttributes().split(",");
for (String field:fields){
attributes.put(field, oConvertUtils.getString(reflectHelper.getMethodValue(field)));
}
tg.setAttributes(attributes);
}
)将all中的数据,根据treeGridModel中的设置,将附加数据形成字典方式存放在TreeGrid列表中。
5.在departList.jsp文件中,增加(
<t:dgCol title="负责人" field="fzr" treefield="attributes.fzr"></t:dgCol>
<t:dgCol title="联系电话" field="lxdh" treefield="attributes.lxdh"></t:dgCol>
)。
6.但是这样数据还是显示不出来的,因为jquery.easyui.min.1.3.2.js中针对treegrid的数据获取,在9562行,数据是使用数组方式取到的,而增加的附加数据无法使用数组方式获取,必须使用类的方式获取,特增加一行:if (val == undefined) val = eval("row."+_721); 表示如果数组方式获取不到,则使用类的方式获取。这里仅处理了不带formatter的数据回显,针对格式化函数中的数据处理,因为formatter的函数格式是formatter(val, row) ,这里的val应该也是undefined,但是可以使用row中的值获取到。
|
|