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

Kendo ui 剑道拳。排序更改后将网格重置为第一页,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我使用KendoUIGrid进行服务器分页和排序。更改排序后,网格将刷新数据,但当前页面保持不变 如何捕获排序事件并移动到第一页 注意,我已经读过了,但讨论了另一个案例…考虑以下方法: 使用Kendo UI数据源的事件将数据保存到某个变量中 使用该事件将以前的排序状态与新的排序状态进行比较 如果排序状态已更改,请使用e.preventDefault() 使用该方法导航到第一页 您还需要一个标志变量来防止requestStart处理程序中出现无休止的循环,因为更改页面将触发新的requestSt

我使用KendoUIGrid进行服务器分页和排序。更改排序后,网格将刷新数据,但当前页面保持不变

如何捕获排序事件并移动到第一页


注意,我已经读过了,但讨论了另一个案例…

考虑以下方法:

  • 使用Kendo UI数据源的事件将数据保存到某个变量中
  • 使用该事件将以前的排序状态与新的排序状态进行比较
  • 如果排序状态已更改,请使用
    e.preventDefault()
  • 使用该方法导航到第一页
  • 您还需要一个标志变量来防止requestStart处理程序中出现无休止的循环,因为更改页面将触发新的requestStart事件
下面是一个演示:


考虑以下方法:

  • 使用Kendo UI数据源的事件将数据保存到某个变量中
  • 使用该事件将以前的排序状态与新的排序状态进行比较
  • 如果排序状态已更改,请使用
    e.preventDefault()
  • 使用该方法导航到第一页
  • 您还需要一个标志变量来防止requestStart处理程序中出现无休止的循环,因为更改页面将触发新的requestStart事件
下面是一个演示:

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();
}
// ...