grid - 如何在给定行和列索引的情况下获取 Dojo 网格单元格的实际 DOM 节点?

标签 grid dojo dojox.grid

我正在使用 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 在这种情况下无法正常工作。

最佳答案

这就是我正在使用的,如果您确定何时调用此事件,您的 domNodes 会更新:

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

关于grid - 如何在给定行和列索引的情况下获取 Dojo 网格单元格的实际 DOM 节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085288/

相关文章:

css - 使用网格时如何使背景图像扩展到全宽?

layout - Bootstrap 4.0 网格系统布局不起作用

css - CSS 的定位问题真的很奇怪

javascript - 网格中的更新值未显示在 java spring Controller 中

javascript - 如何获取 dojo 网格中的列名称。

javascript - 我们如何在 dojo TreeGrid 中设置子项?

css - 带有 CSS 的菜单栏

ios - 类似于 CGPoint 的类,但带有整数(用于表示网格中的位置)

javascript - 使用 this.inherited 在 dojo 中调用祖 parent 方法

javascript - 如何不断检查 JavaScript 函数是否可用,然后在可用时调用