4

如何获取 dojox.enhancedGrid 的选定行对象?我正在使用 selectionMode: 'single' 例如单选按钮。

dijit.byId("gridViewWidget").selection.selectedIndex 返回行索引。但是如何获取该 Index 的 rowObject 呢?我可以获得rowNode()但我需要的是该行的 id 列的值。

它可以遍历返回的 HTML DOMrowNode()但是有没有直接的方法?

我目前正在使用dijit.byId("gridViewWidget").store._dataArray[i]并传递返回的索引。尽管这可行,但似乎 _dataArray 是私有财产。那么使用安全吗?

4

2 回答 2

5

我自己是dojo的新手,但如果不完全正确,这应该很有用。首先,dojox.grid.enhancedGrid它是建立在 之上的dojox.grid.DataGrid,所以在这里查看文档:

dojox.grid.DataGrid 文档

  • grid.getItem(idx)返回给定索引处的商店“项目”

  • grid.selection.getSelected()返回所选项目的数组

您应该能够使用其中任何一个来获得您想要的项目。

于 2010-06-18T15:13:06.910 回答
0

使用声明性标记,您可以执行以下操作(根据记忆,可能需要调整才能正常工作):

<script type="text/javascript">
function formatThisColumn(rowIndex, rowObject) {
    if (rowObject == null) return;
    field = rowObject.i.fieldName;
    return field;
}
</script>
<div dojoType="dojo.data.ItemFileReadStore" id="store" jsid="jsonStore" url="test.json"></div>
<table dojoType="dojox.grid.EnhancedGrid" id="gridNode" jsid="grid" store="store">
<thead>
<tr>
  <th get="formatThisColumn">A Computed Column</th>
</tr>
</thead>
</table>

注意“formatThisColumn”函数:在数据网格中每行至少调用一次,并传递行的索引(在 JSON 项中)和包含“当前”项的对象(使用“i”索引)。这会在呈现数据网格时为您提供来自 JSON 响应的原始值。

于 2010-07-12T23:56:51.547 回答