我正在使用Kendo Grid来显示一些客户端数据。以下代码生成网格。
$(document).ready(function() {
var grid = $("#clientsDb").kendoGrid({
dataSource: {
pageSize: 20,
serverPaging: true
},
groupable: true,
sortable: true,
pageable: true,
scrollable: false
}).data("kendoGrid");
grid.table.kendoSortable({
filter: ">tbody >tr",
hint: $.noop,
cursor: "move",
placeholder: function(element) {
return element.clone().addClass("k-state-hover").css("opacity", 0.65);
},
container: "#grid tbody",
change: function(e) {
var skip = grid.dataSource.skip(),
oldIndex = e.oldIndex + skip,
newIndex = e.newIndex + skip,
data = grid.dataSource.data(),
dataItem = grid.dataSource.getByUid(e.item.data("uid"));
grid.dataSource.remove(dataItem);
grid.dataSource.insert(newIndex, dataItem);
}
});
});
javascript代码的下半部分对表中的行进行排序。我无法弄清楚如何将排序保存到数据库。我假设我可以使用ajax将其发布到数据库,但我不确定如何编写它。
答案 0 :(得分:0)
要存储行顺序,您可以在更改处理程序中添加它:
//Assuming ID uniquely identifies the row in your database
$.post("@Url.Action("UpdateIndex")", { id: dataItem.ID, index:newIndex });
服务器端,您需要根据索引/订单列存储数据。 然后,您的网格可以在“索引/订单”列上进行排序,并始终反映客户端所做的更改。