如何获取dojox.enhancedGrid的Selected Row对象? 我正在使用selectionMode:'单' 例如用收音机按钮。
dijit.byId("gridViewWidget").selection.selectedIndex
返回rowIndex。
但是如何获取该索引的rowObject?
我可以得到rowNode()
但我需要的是该行的id列的值。
它可能会拖拽rowNode()
返回的HTML DOM但是有没有直接的方式?
我目前正在使用dijit.byId("gridViewWidget").store._dataArray[i]
并传递返回的索引。虽然这有效但似乎_dataArray是一个私有财产。
那么使用它是否安全?
答案 0 :(得分:5)
我自己是道场新手,但如果不完全正确,这应该是有用的。首先,dojox.grid.enhancedGrid
建立在dojox.grid.DataGrid
之上,因此请查看此处的文档:
dojox.grid.DataGrid Documentation
grid.getItem(idx)
返回给定索引
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响应的原始值。