您的位置:首页 > 数据库

Ext JS 3.3.1中TreePanel动态加载数据库信息时ID重复的问题

2011-05-17 16:13 429 查看
现象描述:

在使用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版的完全不一样,不过还是向下兼容的。

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐