質問

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

dijit.byId("gridViewWidget").selection.selectedIndexRowIndexを返します。しかし、そのインデックスのrowObjectを取得するにはどうすればよいですか?私は得ることができます rowNode()しかし、私が必要とするのは、その行のID列の値です。

返されたHTML Domを移動することが可能です rowNode() しかし、簡単な方法はありますか?

私は現在使用しています dijit.byId("gridViewWidget").store._dataArray[i] 返されたインデックスを渡します。これは機能しますが、_dataarrayは私有財産のようです。それで、安全に使用してもよいですか?

役に立ちましたか?

解決

私は自分でDojoが初めてですが、これは完全に正しくないとしても便利なはずです。初めに、 dojox.grid.enhancedGrid の上に構築されています dojox.grid.DataGrid, 、だからこちらのドキュメントをチェックしてください:

dojox.grid.datagridドキュメント

  • grid.getItem(idx) 指定されたインデックスでストア「アイテム」を返します

  • grid.selection.getSelected() 選択したアイテムの配列を返します

これらのいずれかを使用して、必要なアイテムを取得できるはずです。

他のヒント

宣言マークアップを使用すると、(メモリから、機能的であるために調整が必要になる場合があります)。

<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」インデックスを使用しているオブジェクト(「i」インデックスを使用するオブジェクト)に注意してください。 )。これにより、Datagridがレンダリングされている間、JSON応答から元の値が得られます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top