Domanda

Come posso ottenere l'oggetto riga selezionata di dojox.enhancedGrid?Sto usando SelectionMode:'single' ad es.con pulsanti radio.

dijit.byId("gridViewWidget").selection.selectedIndexRestituisce il rowIndex.Ma come ottenere il rowObject di quell'indice?Posso ottenere il rowNode()Ma ciò di cui ho bisogno è il valore della colonna id di quella riga.

È possibile attraversare il DOM HTML restituito da rowNode() Ma esiste un modo semplice?

Attualmente sto utilizzando dijit.byId("gridViewWidget").store._dataArray[i] e passando l'indice restituito.Sebbene funzioni, sembra che _dataArray sia una proprietà privata.Quindi è sicuro da usare?

È stato utile?

Soluzione

Anch'io sono nuovo nel dojo, ma questo dovrebbe essere utile se non del tutto corretto.Prima di tutto, dojox.grid.enhancedGrid è costruito sopra dojox.grid.DataGrid, quindi controlla la documentazione qui:

dojox.grid.DataGrid Documentazione

  • grid.getItem(idx) restituisce l'"articolo" del negozio in corrispondenza dell'indice specificato

  • grid.selection.getSelected() restituisce un array degli elementi selezionati

Dovresti essere in grado di utilizzare uno di questi per ottenere l'oggetto che desideri.

Altri suggerimenti

Utilizzando markup dichiarativo, si potrebbe fare qualcosa di simile (dalla memoria, potrebbe essere necessario tweaking per essere funzionale):

<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>

Si noti la funzione 'formatThisColumn': questo viene chiamato almeno una volta per ogni riga della datagrid, e viene passato l'indice della riga (all'interno degli elementi JSON) e un oggetto che contiene l'elemento 'corrente' (utilizzando il ' i' indice). Questo vi dà i valori originali dalla risposta JSON, mentre il DataGrid viene eseguito il rendering.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top