dojox.enhancedGrid获取选定行

时间:2010-06-16 07:40:00

标签: dojo dojox.grid dojox.grid.datagrid

如何获取dojox.enhancedGrid的Selected Row对象? 我正在使用selectionMode:'单' 例如用收音机按钮。

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

它可能会拖拽rowNode()返回的HTML DOM但是有没有直接的方式?

我目前正在使用dijit.byId("gridViewWidget").store._dataArray[i]并传递返回的索引。虽然这有效但似乎_dataArray是一个私有财产。 那么使用它是否安全?

2 个答案:

答案 0 :(得分:5)

我自己是道场新手,但如果不完全正确,这应该是有用的。首先,dojox.grid.enhancedGrid建立在dojox.grid.DataGrid之上,因此请查看此处的文档:

dojox.grid.DataGrid Documentation

  • grid.getItem(idx)返回给定索引

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

您应该可以使用其中任何一个来获取所需的项目。

答案 1 :(得分: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'函数:在datagrid中每行调用至少一次,并传递行的索引(在JSON项内)和包含'current'项的对象(使用'我指数)。这将为您提供数据网格渲染时JSON响应的原始值。