如何在给定row和col索引的情况下获取Dojo Grid单元的实际DOM节点?

时间:2012-01-31 19:01:06

标签: grid dojo dojox.grid

我正在使用Dojo EnhancedGrid,只有当在同一行上编辑另一个单元格并且我点击一个新单元格时,才会出现此问题:

在这种情况下的onRowClick(e)和onCellClick(e)事件中,为该单元格传入的DOM节点似乎不是网格中单元格的“真实”DOM节点 - 它似乎是某种克隆。我知道这是因为:

  1. e.cellNode.getBoundingClientRect()返回全0(不正确)。

  2. 通过dojo.query(...)的试错手动获取DOM节点给了我一个 node.getBoundingRect()调用的节点返回正确的屏幕 它的矩形。

  3. 所以,我需要得到“正确的”DOM节点,这样我就可以在它上面放置一个工具提示对话框,而不会因为getBoundingClientRect()结果不正确而放在屏幕的左上角。这并不容易,因为单元DOM元素的列索引具有idx = XXX属性,但单元格和行DOM元素似乎都没有rowIndex。所以,我无法找到一种方法来验证我从Dojo.query()得到的特定单元DOM节点是我想要的rowIndex / colIndex的实际单元格。

    有没有人有解决方法?基本上如何在grid.onCellClick()中获取真正的DOM节点在这种情况下给出一个rowIndex和colIndex?同样,由于网格中的错误,e.cellNode在这种情况下不起作用。

1 个答案:

答案 0 :(得分:0)

这就是我正在使用的内容,如果您确定在致电此活动时,您的domNodes已更新:

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