树节点重复

时间:2014-02-07 18:31:56

标签: extjs4.1 treepanel

我已经阅读了很多关于树梢的投诉,现在我遇到了一些麻烦。

首先,treegrid中的分页无法正常工作。我在另一个不起作用的帖子中找到了一个解决方案,所以我试图为每个人修复它。

第二个是我需要帮助的地方。父节点第一次展开时,它会调用服务器并正确显示子节点。然而,当我崩溃然后再次展开它时,它会将同一个孩子画两次。树崩溃,显示此错误:

Uncaught TypeError: Cannot read property 'internalId' of undefined 

在完成它之后,我发现问题不是在它再次插入时,而是在beforeitemexpand函数中。它会将同一个子项追加两次,导致js和treestore包含2个具有相同internalId的节点,从而导致崩溃。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

树存储的工作方式有点复杂。我怀疑你遇到的问题与你的树店正在存储的模型的idProperty有关。

我也遇到了这些问题。我发现你不能在树中的多个位置有两个具有相同身份的记录。例如,如果您的树表示文件系统,并且您将同一文件复制到两个目录中。如果您的文件具有idProperty(默认设置为id),则商店会将您的文件模型放入键入的ID中,而不管它在树中的路径如何。

建议的解决方案是要么根本没有设置id(对于可编辑的树网格不是一个非常好的解决方案),或者设置一个复合键,它考虑整个节点链直到root到被授予者树中的独特性。

一旦你通过了这些问题,这棵树的效果就会很好。哦,并且分页树...不要认为这会很快发生,已经问过了。