Я использую Dojo 1.5 (включая dojox). У меня есть dojox.grid.DataGrid, где каждая строка представляет пользователя. Когда я нажимаю на строку, я хочу перенаправить URL-адрес, например/users/USER_ID. Идентификатор пользователя является одним из полей в сетке, поэтому все, что мне нужно сделать в моем обратном вызове onRowClick, - это захват идентификатора пользователя для строки, которая была нажата.dojox.grid.DataGrid: как получить доступ к данным из события click?
Событие нажмите содержит свойство RowIndex, и, на самом деле, я нашел (довольно старый) после других, что предложил мне быть в состоянии сделать:
var row = dijit.byId('grid').model.getRow(e.rowIndex);
/* (Then grab the 0th field of the row, which is the user ID.) */
(К сожалению, я так потерял URL.)
Но мой объект сетки не имеет атрибута модели. Что с этим? Изменен ли API? (Моя сетка, конечно, заполнена данными, которые я вижу, щелкаю, сортирую по столбцам и т. Д.).
Так что я застрял. Обратите внимание, BTW, что он не будет работать, чтобы использовать rowIndex для прямого доступа к базовому файлу dojo.data.ItemFileReadStore. Это потому, что сетка является сортируемой, поэтому нет никакой гарантии, что строки сетки будут в том же порядке, что и хранилище.
Любые советы были бы глубоко оценены. Надеюсь, что вопрос ясен и достаточно общий, что любые ответы могут помочь другим в моем затруднительном положении. Большое спасибо.
Спасибо! Это сделал трюк. Два последующих вопроса: 1) Можете ли вы порекомендовать хороший источник документов высокого уровня о том, как выполнять такие задачи? Я был расстроен в своих попытках найти что-либо выше уровня документов в стиле Javadoc для отдельных API. Кажется, что dojocampus.org - лучшая вещь, но она немного пятнистая. 2) В Dojo считается ли законным назвать методы, названные с лидирующим подчеркиванием? Я предположил, что они частные API. Еще раз спасибо, -qdw – qdw 2010-12-10 06:28:33