Pergunta

Como posso obter o objeto de linha selecionado do dojox.epensGrid? Estou usando o SelectionMode: 'Single', por exemplo, com botões de rádio.

dijit.byId("gridViewWidget").selection.selectedIndexRetorna o RowIndex. Mas como obter o ROWObject desse índice? Eu posso conseguir o rowNode()Mas o que eu preciso é o valor da coluna de identificação dessa linha.

É possível travar o html dom devolvido por rowNode() Mas há algum caminho direto?

Estou usando atualmente dijit.byId("gridViewWidget").store._dataArray[i] e passando o índice devolvido. Embora isso funcione, parece que _dataarray é uma propriedade privada. Então é seguro usar?

Foi útil?

Solução

Eu sou novo no me dojo, mas isso deve ser útil se não estiver totalmente correto. Em primeiro lugar, dojox.grid.enhancedGrid está construído em cima de dojox.grid.DataGrid, então confira a documentação aqui:

Documentação Dojox.Grid.DataGrid

  • grid.getItem(idx) Retorna o 'item' da loja no índice fornecido

  • grid.selection.getSelected() Retorna uma matriz dos itens selecionados

Você deve poder usar qualquer um deles para obter o item que deseja.

Outras dicas

Usando a marcação declarativa, você pode fazer algo como (da memória, pode precisar de 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>

Observe a função 'formatthiscolumn': Isso é chamado pelo menos uma vez por linha no datagrid e é aprovado no índice da linha (dentro dos itens JSON) e um objeto que contém o item 'atual' (usando o índice 'i' ). Isso fornece os valores originais da resposta JSON enquanto o Datagrid está sendo renderizado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top