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中的值获取到。 |
关于在datagridTag中使用attributes的说明
最新推荐文章于 2016-04-04 00:25:42 发布