【发布时间】: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