Я использую довольно приятную библиотеку javascript Recline http://okfnlabs.org/recline/, она строится вокруг Backbone. Он также использует SlickGrid.
Существует довольно много примеров, и, конечно же, есть и исходный код. У меня довольно много времени - написать собственный бэкэнд и показать данные в виде слайков.
Однако одна вещь, которую я не могу найти в примерах, - это добавить запись в набор данных. Я хотел бы привязать действие к кнопке, поэтому я могу добавить пустую запись в конец набора данных, поэтому я могу использовать представление slickgrid для редактирования данных.
Единственный способ, по которому я могу добавить запись, - это обойти поездку на сервер, но я не хочу этого делать, поскольку это связано с необходимостью публикации достоверных данных, поскольку на самом деле я не знаю, t хочу пустые строки в моем наборе данных. Я хотел бы иметь возможность добавить несколько строк в клиенте браузера, прежде чем отправлять данные через REST на сервер.
В настоящий момент код выглядит так.
$(document).ready(function() {
var dataset = new recline.Model.Dataset({
url: '/rest/monitors',
backend: 'restlet',
});
dataset.fetch().done(function(dataset) {
var $el = $('#mygrid');
var grid = new recline.View.SlickGrid({
model: dataset,
el: $el,
state: {
gridOptions: {editable: true,enableCellNavigation: true},
columnsEditor: [
{column: 'monitoruntil', editor: Slick.Editors.Date },
{column: 'enabled', editor: Slick.Editors.Checkbox },
{column: 'owneremail', editor: Slick.Editors.Text},
{column: 'normalinterval', editor: Slick.Editors.Text}
],
columnsWidth:[{column: 'owneremail', width: 100},{column: 'url', width: 300},{column: 'lastaccessed', width:100 }]
}
});
grid.visible = true;
grid.render();
//Bind Save Button to a function to save the dataset
$('#savebutton').bind('click', function() {
//alert($(this).text());
dataset.save();
});
});;
})
С помощью этого кода я могу редактировать и сохранять только существующие записи, которые были доставлены с бэкэндом "restlet".