4

dojox.enhancedGrid の選択された行オブジェクトを取得するにはどうすればよいですか? 私は selectionMode: 'single' をラジオ ボタンなどで使用しています。

dijit.byId("gridViewWidget").selection.selectedIndex 行インデックスを返します。しかし、その Index の rowObject を取得する方法は? 取得できますが、rowNode()必要なのはその行の id 列の値です。

によって返された HTML DOM をトラバースすることは可能rowNode()ですが、簡単な方法はありますか?

現在dijit.byId("gridViewWidget").store._dataArray[i]、返されたインデックスを使用して渡しています。これは機能しますが、_dataArray はプライベート プロパティのようです。安全に使用できますか?

4

2 に答える 2

5

私自身道場は初めてですが、これは完全に正しくない場合でも役立つはずです。まず、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」関数に注意してください。これは、データグリッド内の行ごとに少なくとも 1 回呼び出され、行のインデックス (JSON アイテム内) と「現在の」アイテムを含むオブジェクト (「i」インデックスを使用) が渡されます。 )。これにより、データグリッドがレンダリングされている間、JSON 応答から元の値が得られます。

于 2010-07-12T23:56:51.547 に答える