在javascript中将Kendo Grid排序保存到数据库中

时间:2015-07-07 18:10:39

标签: javascript jquery asp.net-mvc kendo-ui

我正在使用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将其发布到数据库,但我不确定如何编写它。

1 个答案:

答案 0 :(得分:0)

要存储行顺序,您可以在更改处理程序中添加它:

//Assuming ID uniquely identifies the row in your database 
$.post("@Url.Action("UpdateIndex")", { id: dataItem.ID, index:newIndex });

服务器端,您需要根据索引/订单列存储数据。 然后,您的网格可以在“索引/订单”列上进行排序,并始终反映客户端所做的更改。