如何根据行和列索引获取Dojo Grid单元格的实际DOM节点?

3
我正在使用Dojo EnhancedGrid,只有在同一行的另一个单元格正在被编辑时,我点击到新的单元格才会出现这个问题:
在这种情况下,在onRowClick(e)和onCellClick(e)事件中,传递给单元格的DOM节点似乎不是网格中该单元格的“真实”DOM节点 - 它似乎是某种克隆。我知道这是因为:
1. e.cellNode.getBoundingClientRect()返回所有0(不正确)。 2. 通过dojo.query(...)手动获取DOM节点会给我一个节点,它的node.getBoundingRect()调用返回了正确的屏幕矩形。
因此,我需要获取“正确”的DOM节点,以便我可以将工具提示对话框放置在其中,而不会由于不正确的getBoundingClientRect()结果而放置在屏幕左上角。这并不容易,因为单元格DOM元素具有idx = XXX属性,用于它们的列索引,但单元格或行DOM元素似乎都没有rowIndex。因此,我无法找出一种验证我从Dojo.query()获取的特定单元格DOM节点是否是我想要的rowIndex/colIndex的实际单元格的方法。
有人有解决方法吗?基本上如何在这种情况下在grid.onCellClick()中获得真正的DOM节点,给定rowIndex和colIndex?再次强调,由于网格中的错误,e.cellNode在这种情况下不起作用。
1个回答

0

这是我正在使用的代码,如果您确定在调用此事件时,您的domNodes已经更新:

var rowNode = dojo.query(e.target).closest(".dojoxGridRow")[0];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接