我用Easyui 的 tree 第一次打开页面 tree 加载正常 ,按F5刷新页面就乱了
我调试了一下 是父级ID 的问题,实现类:public List getTreeNode(String id) {
System.out.println(id+",");
Map params = new HashMap();
//定义一个菜单模型集合
List tMenu = new ArrayList();
//创建hql查询语句
StringBuffer hql = new StringBuffer();
if(id==null || id.equals("")){
//查询所有根节点
hql.append("from QskjMenu t where t.qskjMenu is null");
}else{
//异步加载当前id下的子节点
hql.append("from QskjMenu t where t.qskjMenu.id=:id");
params.put("id", id);
}
//定义一个菜单集合来接收查询到的数据
List menu = baseDao.find(hql,params);
//如果返回的集合不为空,就循环将菜单里面的属性拷贝到菜单模型中去,并把对象添加到上面创建的菜单模型中去
if(menu != null && menu.size()>0){
for(QskjMenu qskjMenu: menu){
TQskjMenu m = new TQskjMenu();
BeanUtils.copyProperties(qskjMenu, m);
Set set = qskjMenu.getQskjMenus();
if(set!=null && !set.isEmpty()){
m.setState("closed");
}else{
m.setState("open");
}
tMenu.add(m);
}
}
//返回菜单模型
return tMenu;
}
数据表:
你将前台js代码也截图看看。
你可以用firefox调试一下,你看看你第一次进来正常时的数据,第二次刷新的数据。调试一下后台。
调试了 就是传递的那个参数id 是父节点的id, 第一次是null 就查询所有跟节点,在页面显示了,点击展开,id 就变成 0,或者 1,2 ,页面刷新又去调用getTreeNode方法 这时候id 为2 就出问题了
你的js代码最好贴一下,发代码的时候用</>格式化一下
没写js代码
</>
<div title="初期应收" data-options="iconCls:'icon-reload'" style="padding:10px;"></div>
<div title="单据整理" data-options="iconCls:'icon-reload'"></div>
<div title="统计分析" data-options="iconCls:'icon-reload'"></div>
<div title="系统管理" data-options="iconCls:'icon-reload'">
<!-- <ul class="easyui-tree" data-options="url:'${pageContext.request.contextPath}/QskjMenu!getXtglTreeNode.action',lines:true"></ul> -->
</div>
</div>
</>
</>
</>
js代码也截图看看。
</div>
</div>
</div>