我正在使用相当不错的 JavaScript 库 Recline http://okfnlabs.org/recline/它是围绕 Backbone 构建的。它还使用 SlickGrid。
有很多例子,当然也有源代码可以看看。我自己有很长的路要走——编写自己的后端并在 slickgrid 视图中显示数据。
但是,我在示例中找不到的一件事是如何将记录附加到数据集。我想将操作绑定到一个按钮,这样我就可以在数据集的末尾附加一条空记录,这样我就可以使用 slickgrid 视图来编辑数据。
我似乎能够添加记录的唯一方法是往返服务器,但我不想这样做,因为这将涉及必须发布有效数据,因为实际上我不想要空白我的数据集中的行。在通过 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”后端交付的现有记录。