Я только начал использовать dgrid, и, пройдя образец dTunes, я не смог найти идентификатор, связанный с каждой строкой в списке. Это очень исправно с моей стороны, но как я могу получить идентификатор, который я отправил из источника данных?Получение id из строки, нажатой на dgrid Список
define([
'require',
'dgrid/List',
'dgrid/OnDemandGrid',
'dgrid/Selection',
'dgrid/Keyboard',
'dgrid/extensions/ColumnHider',
'dojo/_base/declare',
'dojo/_base/array',
'dojo/Stateful',
'dojo/when',
'dstore/RequestMemory',
'put-selector/put',
'dojo/domReady!'
], function (require, List, Grid, Selection,
Keyboard, Hider, declare, arrayUtil, Stateful,
when, RequestMemory, put) {
var cstsNode = put(listNode, 'div#cstsCars');
...
var cstsList = new TunesList({}, cstsNode);
var dataCSTS = new RequestMemory({ target: require.toUrl('./dataCSTS.json') });
...
dataCSTS.fetch().then(function (cars) {
cstsCars = arrayUtil.map(cars, pickField('Description'));
cstsCars.unshift('All (' + cstsCars.length + ' CSTS Cars' + (cstsCars.length !== 1 ? 's' : '') + ')');
cstsList.renderArray(cstsCars);
});
...
cstsList.on('dgrid-select', function (event) {
var row = event.rows[0];
console.log(row.id); // shows row number. How do I get the real id or other fields?
console.log(row.data); // shows row text that is displayed ("sample text 1")
console.log(row.data.id); // undefined
});
Вот отрывок из выборки данных, как я поставки:
[{"id":"221","Description":"sample text 1"},
{"id":"222","Description":"sample text 2"},
{"id":"223","Description":"sample text 3"}]
Я хотел бы видеть идентификатор. Вместо этого row.id возвращает 1,2 и 3, т. Е. Номера строк (или id dgrid created?).
Что вы подразумеваете под реальным идентификатором? можете ли вы предоставить более подробную информацию? 'Row.data' возвращает фактические данные, которые хранятся в массиве объектов, которые могут или не могут соответствовать данным, отображаемым в сетке. Трудно понять, чего вы пытаетесь достичь. – frank
Поле 'id' будет находиться в объекте' data'. i.e 'console.log (row.data.id)', а не 'row.id'. 'Row.id' является внутренним представлением dGrid. – frank
Возможно, что-то не так, потому что row.data.id не определено, поскольку row.data - это просто текст. Является ли мой объект строки определенным? – Dave