kendo ui网格过滤器,服务器中的排序和分页

jul*_*_am 6 kendo-ui kendo-grid

我正在使用kendo网格,并希望在服务器中执行过滤,排序和分页.我明白我应该添加到dataSource:

serverPaging: true,
serverSorting: true
Run Code Online (Sandbox Code Playgroud)

但是我如何告诉grid/dataSource它应该用于哪个url进行sortig,过滤等等.如果我想自己执行sortig怎么办?我想使用控制kendo提供但是自己去服务器.有没有像"sortTriggered"这样的事件,我可以称之为"prevntDefault"或类似的东西......我不知道.

Rob*_*ner 3

看看这个示例。它使用适用于 Windows Azure 的 MobileServices javascript api,但向您展示了如何自行处理服务器分页和排序。

http://jsbin.com/efeKiwO/11/edit

在数据源的传输函数上,每个方法(读取、更新、创建、销毁)都可以配置为一个函数(这是读取函数,它处理任何排序和分页)。

read: function(options) {
        // Get the table
        var table = client.getTable("Customer");

        // Build base query
        var query = table.includeTotalCount();

        // Add paging
        if(options.data.skip !== undefined && options.data.take !== undefined) {
          query = query.skip(options.data.skip).take(options.data.take);
        }

        // Add sorting
        if(typeof options.data.sort !== "undefined" && options.data.sort !== null) {
          for(var i = 0; i< options.data.sort.length; i++) {
            if(options.data.sort[i].dir === "desc") {
              query = query.orderByDescending(options.data.sort[i].field);
            }
            else {
              query = query.orderBy(options.data.sort[i].field);
              }
          }
        }

        var promise = query.read();

        promise.done(function(data) {
          options.success(data);
        });
      },
Run Code Online (Sandbox Code Playgroud)

在这个函数中你可以做任何你喜欢做的事情。您可以进行 $.getJSON 调用、$.ajax 调用或您想要执行的任何其他操作,而不是使用像本示例这样的 javascript 库。该函数的参数对象将包含分页、排序和过滤所需的所有内容。获得数据后,只需调用 options.success(dataSet); 使用正确排序/分页的数据集,您的网格将绑定到它。