我正在使用SlickGrid,我有3个coulmns,其中第一列是Id列,必须保持唯一(可编辑),我还想在焦点进入新行时自动增加每行的id feild。在表单提交上我也必须检查唯一性。
答案 0 :(得分:3)
我通过为每个新行分配一个负值并减少索引来处理这个问题。 -1,-2,-3。
将这些行发送到服务器并保存后,它们会返回正确的ID并且状态良好。
var newRowCounter = -1;
然后我为onAddNewRow添加了一个回调来设置默认值并刷新网格。
this.Grid.onAddNewRow.subscribe(function (e, args) {
var item = {
myId: newRowCounter--
};
$.extend(item, args.item); // Merge my default item and user input
args.item = item;
var dataview = args.grid.getData(); // Retrieve my underlying datacontext.
dataview.addItem(args.item); // Add my merged item to the datacontext.
args.row = dataview.getLength() - 1;
args.grid.invalidateRow(args.row); // Tell the grid this row changed
self.Grid.updateRowCount();
self.Grid.render(); // Display our changes.
});