【问题标题】:Using kendo grid sort mechanism with actually sorting使用剑道网格排序机制进行实际排序
【发布时间】:2014-02-10 13:10:48
【问题描述】:

我想使用剑道网格排序机制,捕获排序事件并在服务器端执行我自己的排序。我不希望网格实际上执行排序(不是在客户端也不是在服务器端)。

我发现我可以在数据源上定义自己的排序函数并捕获排序事件如下:

gridDatasource.originalSort = gridDatasource.sort;
gridDatasource.sort = function () {
    if (arguments.length > 0) {
         console.log("SORT: " + JSON.stringify(arguments));
    }
    //return gridDatasource.originalSort.apply(this, arguments);
}

这样我可以在任何排序操作发生之前捕获它,但问题是如果我不调用原始排序网格的三角形不会出现并且排序的方向不会改变.所以每当我点击排序时,我都会得到相同的方向“asc”。

还有其他建议吗?

编辑

以下或多或少是网格定义的示例:

var ds = new kendo.data.DataSource({});
ds.originalSort = ds.sort;
ds.sort = function () {
    if (arguments.length > 0) {
          console.log("SORT: " + JSON.stringify(arguments));
    }
    return ds.originalSort.apply(this, arguments);
}
$("#grid", element).kendoGrid({
    dataSource: ds,
    sortable: true,
    pageable: true,
    scrollable: {
          virtual: true
    },
    filterable: true,
    columns: [
              { field: "text", title: "text", hidden: false},
              { field: "id", title: "id", hidden: false},
              { field: "newColumn", title: "New column", hidden: false},
              { field: "anotherColumn", title: "Another column", hidden: false}
   ],

   selectable: "row",
   resizable: true,
   columnMenu: true
});

【问题讨论】:

  • 我可以看到网格定义吗?
  • 定义的其余部分与排序无关,所以我认为它不相关
  • 我知道这很重要。

标签: kendo-ui kendo-grid


【解决方案1】:

将数据源设置为使用serverSorting,使用parameterMap 函数以您希望将参数发送到服务器的格式准备参数。因此,您将负责处理服务器端的排序。

【讨论】:

  • 这对我没有帮助,因为我根本不希望网格对请求负责。这个想法是引发一个事件(类似于“sortStarted”),应用程序中的其他一些组件将自己处理请求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 2015-10-04
相关资源
最近更新 更多