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 的实际单元格。

有人有解决方法吗?在这种情况下,基本上如何在给定 rowIndex 和 colIndex 的情况下获取 grid.onCellClick() 中的真实 DOM 节点?同样,由于网格中的错误, e.cellNode 在这种情况下无法正常工作。

4

1 回答 1

0

This is what I am using, if you are sure about when you call this event, your domNodes are updated:

var rowNode = dojo.query(e.target).closest(".dojoxGridRow")[0];
于 2012-05-16T04:06:24.807 回答