我們在劍道網格表格內使用劍道拖放功能。劍道網格拖放問題
1)如果用戶在任何可編輯字段上提供數據而不保存數據,如果用戶點擊/跳轉到其他字段進行編輯。用戶正在丟失他的更新數據。 2)如果用戶更新任何記錄,我們再次刷新/重新生成表格或者如果我們從函數外部刷新/重新生成或者我們使用函數外部添加新記錄。之後,用戶無法刪除行來替換其他。
var data = [
{ Id: 1, Name: "data 1", Position: 1 },
{ Id: 2, Name: "data 2", Position: 2 },
{ Id: 3, Name: "data 3", Position: 3 }
];
var dataSource = new kendo.data.DataSource({
data: data,
schema: {
model: {
Id: "Id",
fields: {
Id: { type: "number" },
Name: { type: "string" },
Position: { type: "number" }
}
}
}
});
var grid= $("#grid").kendoGrid({
dataSource: dataSource,
scrollable: false,
editable : true,
toolbar: ["save","cancel", "create"],
columns: ["Id", "Name", "Position"]
}).data("kendoGrid");
grid.table.kendoDraggable({
filter: "tbody > tr:not(.k-grid-edit-row)",
group: "gridGroup",
cursorOffset: { top: 10, left: 10 },
hint: function(e) {
return $('<div class="k-grid k-widget"><table><tbody><tr>' + e.html() + '</tr></tbody></table></div>');
}
});
grid.table/*.find("tbody > tr")*/.kendoDropTarget({
group: "gridGroup",
drop: function (e) {
var target = dataSource.getByUid($(e.draggable.currentTarget).data("uid")),
dest = $(e.target);
if (dest.is("th")) {
return;
}
dest = dataSource.getByUid(dest.parent().data("uid"));
//not on same item
if (target.get("Id") !== dest.get("Id")) {
//reorder the items
var tmp = target.get("Position");
target.set("Position", dest.get("Position"));
dest.set("Position", tmp);
dataSource.sort({ field: "Position", dir: "asc" });
}
}
});
請參考jsfiddel文件的鏈接。 –
Piyush
不能到達您的js小提琴。嘗試發佈您的代碼與問題 –
在'模型'定義嘗試替換'Id:「Id」通過「id:'Id'」。 – OnaBai