dojox.enhancedGrid get Selected Row
dojox.grid dojox.grid.datagrid (2)
¿Cómo puedo obtener el objeto Row seleccionado de dojox.enhancedGrid? Estoy usando selectionMode: ''single'', por ejemplo, con botones de radio.
dijit.byId("gridViewWidget").selection.selectedIndex
Devuelve el rowIndex. ¿Pero cómo obtener rowObject de ese índice? Puedo obtener el rowNode()
pero lo que necesito es el valor de la columna id de esa fila.
Es posible travarse el HTML DOM devuelto por rowNode()
Pero, ¿hay alguna manera directa?
Actualmente estoy usando dijit.byId("gridViewWidget").store._dataArray[i]
y paso el índice devuelto. Aunque esto funciona, parece que _dataArray es una propiedad privada. Entonces, ¿es seguro de usar?
Soy nuevo en Dojo, pero esto debería ser útil, aunque no del todo correcto. En primer lugar, dojox.grid.enhancedGrid
se construye sobre dojox.grid.DataGrid
, así que echa un vistazo a la documentación aquí:
Documentación dojox.grid.DataGrid
grid.getItem(idx)
devuelve el ''elemento'' de la tienda en el índice dadogrid.selection.getSelected()
devuelve una matriz de los elementos seleccionados
Debería poder usar cualquiera de estos para obtener el artículo que desea.
Usando el marcado declarativo, podría hacer algo como (desde la memoria, puede necesitar ajustes para ser funcional):
<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>
Tenga en cuenta la función ''formatThisColumn'': se llama al menos una vez por fila en la cuadrícula de datos, y pasa el índice de la fila (dentro de los elementos JSON) y un objeto que contiene el elemento ''actual'' (usando el índice ''i'' ) Esto le proporciona los valores originales de la respuesta JSON mientras se procesa la cuadrícula de datos.