Ext JS 3.3.1中TreePanel动态加载数据库信息时ID重复的问题
2011-05-17 16:13
429 查看
现象描述:
在使用Ext JS 3.3.1的TreePanel时,从数据库加载的数据虽然能够正常显示,但是在点开各子节点时,由于ID号的重复,导致在点击某节点时,焦点却是在另一个节点上。
我定义的TreeNode对象的属性如下:
这里定义的ID也就当作是TreeNode的ID使用。 于是就出现了上面描述的点击混乱问题。
后来偶然在网上看到一篇文章,说是TreeNode的ID在同一颗树中是不能相同的,不然会引起混乱,并且描述解决思路。
解决方法:
其实很简单,将上面定义的TreeNode中的id改成其他名称就行了。
例如: private Integer identity;
在Ext JS 3.3.1中,TreeNode有一个属性:attributes,我自定义的各属性都可以通过它来获取。
例如:在JS代码中,获取到 identity属性的方法如下:
这样就解决了在一颗树中节点ID重复导致的混乱问题。
PS:之所以多次说到 Ext JS 3.3.1,因为现在 Ext JS 4已经发布正式版,而且其结构有了很大变化,很多类也经过重写,可以说与3.3.1版的完全不一样,不过还是向下兼容的。
在使用Ext JS 3.3.1的TreePanel时,从数据库加载的数据虽然能够正常显示,但是在点开各子节点时,由于ID号的重复,导致在点击某节点时,焦点却是在另一个节点上。
我定义的TreeNode对象的属性如下:
public class TreeNode implements java.io.Serializable { private Integer id; private String type; .... // 属性的getter 和 setter方法 .... }
这里定义的ID也就当作是TreeNode的ID使用。 于是就出现了上面描述的点击混乱问题。
后来偶然在网上看到一篇文章,说是TreeNode的ID在同一颗树中是不能相同的,不然会引起混乱,并且描述解决思路。
解决方法:
其实很简单,将上面定义的TreeNode中的id改成其他名称就行了。
例如: private Integer identity;
在Ext JS 3.3.1中,TreeNode有一个属性:attributes,我自定义的各属性都可以通过它来获取。
例如:在JS代码中,获取到 identity属性的方法如下:
var id = treeNode.attributes.identity;
这样就解决了在一颗树中节点ID重复导致的混乱问题。
PS:之所以多次说到 Ext JS 3.3.1,因为现在 Ext JS 4已经发布正式版,而且其结构有了很大变化,很多类也经过重写,可以说与3.3.1版的完全不一样,不过还是向下兼容的。
相关文章推荐
- Extjs treePanel 的treestore重复加载问题解决
- asp.net 动态加载的用户控件属性传id值问题
- extjs treepanel 动态的加载节点,选中父节点时,同时选中下面的子节点
- extjs tabpanel 添加header不能重复加载tabpanel 的问题
- web项目--BBS之从数据库查询动态生成版块信息问题分析和小结
- Extjs4 treePanel异步加载菜单(后台从数据库读取)
- ExtJS4.X TreeStore,TreePanel 动态加载菜单和Tab页
- ligerui中的tree的异步动态加载数据库例子
- 怎么解决重复提交的问题,即网络不好的时候,提交按钮点了一次,但是却发起了多次http url请求,数据库中写入了多条重复记录(当然ID是不重复的,因为毕竟是多条http url记录)
- extjs中关于数据库id不能重复的问题
- Exitjs tree动态连接数据库加载Node
- ExtJs4问题笔记(一) 为treePanel 添加加载动画
- 解决Winform panel动态加载Form页面无法随着panel最大化的问题
- 解决Hibernate 注解在属性上 ,多对一,一对一懒加载 当调用one那一方getId 也会查数据库的问题
- 数据库->SQL Server2005->随机遇到问题->查询name重复,id不重复,时间最新的记录
- 如何处理数据库中ID重复的问题
- asp.net 动态加载的用户控件属性传id值问题
- Extjs中左边treepanel右边panel动态加载jsp页面
- Goole Map API V3动态加载数据库中的坐标信息并添加标记(ASP.NET)
- asp.net ext treepanel 动态加载XML的实现方法