剑道UI。排序更改后将网格重置为第一页

时间:2016-09-14 12:28:22

标签: kendo-ui kendo-grid

我使用Kendo UI Grid进行服务器分页和排序。更改排序时,网格会刷新数据,但当前页面保持不变。

如何捕捉排序事件并转移到第一页?

P.S。我已阅读this thread,但在那里讨论了另一个案例......

1 个答案:

答案 0 :(得分:2)

考虑以下方法:

  • 使用Kendo UI DataSource的change事件将current sort state保存在某个变量中。
  • 使用requestStart事件将先前的排序状态与新的排序状态进行比较。
  • 如果排序状态已更改,请使用e.preventDefault()
  • 阻止请求
  • 使用page方法导航到第一页
  • 您还需要一个标志变量来阻止requestStart处理程序中的无限循环,因为更改页面将触发新的requestStart事件

这是一个演示:

http://dojo.telerik.com/OXoYu

var sortState;
var resetPageFlag = false;

// ...
requestStart: function(e) {
    //console.log(e.sender.sort(), sortState);
    if (!resetPageFlag &&
        JSON.stringify(e.sender.sort()) != JSON.stringify(sortState)) {

        //console.log(e.sender.sort(), sortState);
        e.preventDefault();
        resetPageFlag = true;
        e.sender.page(1);
    } else {
        resetPageFlag = false;
    }
},
change: function(e) {
    sortState = e.sender.sort();
}
// ...