Я написал код для доступа к данным из службы RESTFUL в dataView для заполнения таблицы Slick Grid.Необлученное исключение: каждый элемент данных должен реализовать уникальное свойство «id». Slick.dataview.js
Я получаю сообщение об ошибке, что каждый элемент данных должен реализовать уникальное свойство идентификатора!
Я передаю уникальный идентификатор в режиме просмотра данных при установке данных в представление данных, но ничего не происходит.
var dataView;
var grid;
var data;
var options = {
forceFitColumns: true,
enableColumnReorder: false,
autoExpandColumns: true
};
var columns = [{
id: "userId",
name: "User Id",
field: "userId"
}, {
id: "id",
name: "Id",
field: "id"
}, {
id: "title",
name: "Title",
field: "title"
}, {
id: "completed",
name: "Completed",
field: "completed"
}];
$.ajax({
url: 'http://jsonplaceholder.typicode.com/todos/',
async: false,
success: function (response) {
data = JSON.stringify(response);
console.log("received data " + JSON.stringify(response));
},
error: function() {
console.log("error while getting data");
}
});
dataView = new Slick.Data.DataView();
dataView.beginUpdate();
dataView.setItems(data, "id");
dataView.endUpdate();
grid = new Slick.Grid('#slickGrid', dataView, columns, options);
// Make the grid respond to DataView change events.
dataView.onRowCountChanged.subscribe(function (e, args) {
alert("1");
grid.updateRowCount();
grid.render();
});
dataView.onRowsChanged.subscribe(function (e, args) {
alert("2");
grid.invalidateRows(args.rows);
grid.render();
});
JSFIDDLE ЗДЕСЬ
не уверен, как это работает. На вашей скрипке я передал ответ прямо как объект, а не строгий. Я также должен был установить высоту окна просмотра, когда он делал высоту: 0. Тем не менее он показывает только две строки, и когда вы нажимаете одну строку, появляется другая. [Фидл] (http://jsfiddle.net/anpsmn/4UyNA/117/). Надеюсь, это поможет вам идти вперед. – anpsmn
Спасибо @anpsmn. Теперь он работает, я думаю, проблема была связана только с высотой. –