【问题标题】:How to get actual DOM node for a Dojo Grid cell given row and col index?如何获取给定行和列索引的 Dojo Grid 单元格的实际 DOM 节点?
【发布时间】:2012-02-23 12:16:17
【问题描述】:

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

【问题讨论】:

    标签: grid dojo dojox.grid


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      • 2015-05-05
      • 2016-08-28
      • 1970-01-01
      • 2013-06-24
      相关资源
      最近更新 更多