关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 14029|回复: 3

关于comboTree三级绑定的问题

[复制链接]
发表于 2013-7-30 09:43:55 | 显示全部楼层 |阅读模式
目前情况是这样子的:
演示系统当中,只能绑定到二级树,当选定到三级树进行编辑,comboTree只显示id号,并没有显示关联的名称。有没有人已经解决了此问题?

QQ图片20130730094241.jpg

QQ图片20130730094248.jpg








 楼主| 发表于 2013-7-30 10:25:32 | 显示全部楼层
问题已经解决,进行数据递归。
 楼主| 发表于 2013-7-30 12:04:50 | 显示全部楼层
解决方式如下:
修改CommonDao.java,找到
public List<ComboTree> ComboTree(List all, ComboTreeModel comboTreeModel, List in) {
                List<ComboTree> trees = new ArrayList<ComboTree>();
                for (Object obj : all) {
                        trees.add(comboTree(obj, comboTreeModel, in));
                }
                return trees;

        }

修改为:

public List<ComboTree> ComboTree(List all, ComboTreeModel comboTreeModel, List in) {
                List<ComboTree> trees = new ArrayList<ComboTree>();
                for (Object obj : all) {
                        trees.add(comboTree(obj, comboTreeModel, in,true));
                }
                return trees;

        }

开启递归验证,找到如下方法,
private ComboTree comboTree(Object obj, ComboTreeModel comboTreeModel, List in, boolean recursive)

reflectHelper.getMethodValue(comboTreeModel.getChildField());修改为:

List<?> childList = (List<?>) reflectHelper.getMethodValue(comboTreeModel.getChildField());
if (childList != null && childList.size() > 0) {
                        tree.setState("closed");
                        tree.setChecked(false);
                        if (recursive) {// 递归查询子节点
                            List<Object> list = new ArrayList<Object>(childList);
                            //Collections.sort(functionList, new SetListSort());// 排序
                            List<ComboTree> children = new ArrayList<ComboTree>();
                            for (Object f : list) {
                                ComboTree t = comboTree(f,comboTreeModel,in, true);
                                children.add(t);
                            }
                            tree.setChildren(children);
                        }
                }

请注意:这样修改完成后,树数据绑定功能正常,但会导致comboTree树的refresh面板的功能失效,具体原因没有查,不过只要做一个判断,过滤此递归即可。

最终的效果如下:
QQ截图20130730120404.png



发表于 2013-7-30 23:01:50 | 显示全部楼层
nb,这个bug应该已经改了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表