dojox.enhancedGrid получить выбранную строку

Как я могу получить объект Selected Row из dojox.enhancedGrid? Я использую selectionMode: 'single', например. с радиокнопками.

dijit.byId("gridViewWidget").selection.selectedIndex Возвращает rowIndex. Но как получить rowObject этого индекса? Я могу получить rowNode()But Мне нужно значение столбца id этой строки.

Можно пройти через HTML DOM, возвращенный rowNode() Но есть ли какой-нибудь прямой путь?

В настоящее время я использую dijit.byId("gridViewWidget").store._dataArray[i] и передаю возвращаемый индекс. Хотя это работает, кажется, что _dataArray является частной собственностью. Так безопасно ли использовать?


person Neel Basu    schedule 16.06.2010    source источник


Ответы (2)


Я сам новичок в додзё, но это должно быть полезно, если не совсем правильно. Прежде всего, dojox.grid.enhancedGrid построен поверх dojox.grid.DataGrid, поэтому ознакомьтесь с документацией здесь:

dojox.grid.DataGrid Documentation

  • grid.getItem(idx) возвращает "элемент" магазина по заданному индексу

  • grid.selection.getSelected() возвращает массив выбранных элементов

Вы должны быть в состоянии использовать любой из них, чтобы получить предмет, который вы хотите.

person Dfowj    schedule 18.06.2010
comment
Хм, я пробовал. Но в объекте выбора нет такого метода с именем getItem(idx) или getSelected(). мой объект выбора отличается для dataGrid и расширенной сетки. - person Neel Basu; 18.06.2010
comment
Хм, может быть. Как я уже сказал, я не эксперт... и документация также вводит в заблуждение... удачи! - person Dfowj; 19.06.2010

Используя декларативную разметку, вы можете сделать что-то вроде (по памяти, возможно, потребуется настройка для работы):

<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»: она вызывается по крайней мере один раз для каждой строки в сетке данных и получает индекс строки (внутри элементов JSON) и объект, содержащий «текущий» элемент (с использованием индекса «i» ). Это дает вам исходные значения из ответа JSON во время рендеринга сетки данных.

person eskwayrd    schedule 12.07.2010