【问题标题】:Kendo grid sorting stops working after refresh刷新后剑道网格排序停止工作
【发布时间】:2016-08-03 19:40:41
【问题描述】:

我正在通过调用 web-API 获取 kendo-grid DataSource 的数据。排序和过滤工作。然后,在我从 DatePicker / Range 选择中选择一个日期范围后,我将该范围作为一个对象发送到服务器,在那里我从原始 JSON 文件中截取所需的日期范围,并将一个新的裁剪 json 对象返回给 DataSource。数据正确填充了网格,但排序/过滤停止工作。可能是什么问题和解决方案!?谢谢!

网格:

 var result = $("#grid")
        .kendoGrid({
            dataSource: {
                transport: {
                    read: {
                        url: "/api/GridData/GetCustomers",
                        dataType: "json"
                    }
                },
                pageSize: 20

            },

            height: 550,
            filterable: true,
            groupable: true,
            sortable: true,

            pageable: {
                refresh: true,
                pageSizes: true,
                buttonCount: 5
            },
            detailTemplate: kendo.template($("#template").html()),
            detailInit: detailInit
        },
        {
            columns: [
                { field: "UniqueClientCode", title: "Уникальный код клиента" },
                { field: "ClientName", title: "Имя клиента" },
                { field: "ClientOKPO", title: "ОКПО клиента" },
                { field: "RegistrationDate", title: "Дата регистрации" },
                { field: "RemovalFromClientsDate", title: "Дата удаления из клиентов" }
            ]
        })
        .data("kendoGrid");

我如何刷新网格

function refreshDatePicker () {


    // Create new object with date to pass it to API controller and refresh grid

    var dateForDatePicker = new Object;
    dateForDatePicker.startDate = start._oldText;
    dateForDatePicker.endDate = end._oldText;

    $.ajax({
        type: "POST",
        data: dateForDatePicker,
        url: "/api/GridData/postDate",
        dataType: "json",


        success: function (result) {

            $("#grid").data("kendoGrid").dataSource = new kendo.data.DataSource({ data: result });
            $("#grid").data("kendoGrid").dataSource.read();
            $("#grid").data("kendoGrid").refresh();
        }

    });
}

  $("button").on( "click", function() {
          refreshDatePicker();
      alert("submit clicked");

      }

 );

});

【问题讨论】:

  • 不用初始化一个新的数据源,只需在网格上调用dataSource.data(result)。这将设置新的数据项而不擦除整个数据源。

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


【解决方案1】:

使用它来手动将数据源设置为剑道网格

var dataSource = new kendo.data.DataSource({
        data: result 
});

var grid = $("#grid").data("kendoGrid");
grid.setDataSource(dataSource);

参考:http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#methods-setDataSource

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多