Dojo 1.4.2 Tree Grid“expando click”事件?坚持国家?

时间:2012-05-26 00:54:28

标签: dojo treegrid

问题:

给定DOJO TreeGrid,当用户单击expando(“+”)按钮展开行,并存储特定行号或关联项的标识符时,如何捕获事件?我想这样做的目的是从DOM完全删除TreeGrid,重建它,并在重建后恢复它的状态(即以编程方式扩展用户先前扩展的行)。

背景:

所以我在我的应用程序中有一个自定义的DOJO TreeGrid,连接到一个自定义的QueryReadStore。它是使用以下教程构建的:

http://www.ibm.com/developerworks/web/library/wa-dojotreegrid/index.html?ca=drs-

非常有趣的教程,但它可能与我的问题无关,因为它并没有真正压缩任何功能,它似乎只是增加了它。

无论如何,谷歌搜索了一下,我在DOJO论坛中找到了一个很好的功能,我可以用它来编程扩展一行,给定特定的行索引。效果很好。

问题在于我无法找到捕获expando click事件的好方法,并将其与网格中的特定“父项行”索引相关联。

除了详细信息之外,我想将用户已经扩展的每一行的行索引放到一个数组中(并显然删除用户崩溃的行的索引),这样我就可以销毁这个TreeGrid,并且忠实地重建它,用户的选择正确扩展。

我不是DOJO的新手,但我无论如何都不是专家。我已经完成了一些谷歌搜索和FireBugging,并且还没有找到任何可以用来做这件事的东西。

连连呢?以前有人做过类似的事吗?我错过了明显答案的愚蠢问题?我完全被误导了,我错了吗?谢谢大家!

1 个答案:

答案 0 :(得分:0)

类似的东西可能会起作用,这就是dijit.Tree实现的样子;

var expandedNodes = {}
dijit.tree._onExpandoClick = function (args /* object wrap for args.node */) {
   var treeNode = args.node,
       path = treeNode.getTreePath(),
       id = treeNode.getIdentity();

   expandedNodes[id] = path;

}

我不是100%确定我是严格正确的但是对于TreeGrid你必须查看 dojox / grid / _TreeView.js link)的代码。 _setOpen将是一个入口点,您可以从中“挂钩”onclick操作。从那里,找到expandoCell.openStates哈希,这是一个真/假变量集,由itemId索引。此哈希很可能是您的

所需要的