Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery onPaging事件引发时数据类型为json的jqGrid的rowNum_Jquery_Json_Jqgrid - Fatal编程技术网

Jquery onPaging事件引发时数据类型为json的jqGrid的rowNum

Jquery onPaging事件引发时数据类型为json的jqGrid的rowNum,jquery,json,jqgrid,Jquery,Json,Jqgrid,我试图在服务器上保存jqGrid设置,如过滤器、排序顺序和其他设置。除了rowNum设置外,所有工作正常。要保存此参数,我将使用event onPaging onPaging : function(pgButton){ if (pgButton == 'records'){ var rec_per_page = grid.jqGrid('getGridParam', 'rowNum'); //next sending "rec_per_page" para

我试图在服务器上保存jqGrid设置,如过滤器、排序顺序和其他设置。除了rowNum设置外,所有工作正常。要保存此参数,我将使用event onPaging

onPaging : function(pgButton){
    if (pgButton == 'records'){
        var rec_per_page = grid.jqGrid('getGridParam', 'rowNum');
        //next sending "rec_per_page" param to server
    }
}
假设用户将rowNum的值从每页50条更改为100条记录。当datatype设置为local时,它可以正常工作,但如果datatype设置为json,变量rec\u per\u page将包含50而不是100。 用户更改rowNum后,如何获得正确的rowNum值?

这似乎有效:

onPaging : function(pgButton){
    if (pgButton == 'records'){
      setTimeout(function() { alert(grid.jqGrid('getGridParam', 'rowNum')); }, 0);
    }
}
这似乎有效:

onPaging : function(pgButton){
    if (pgButton == 'records'){
      setTimeout(function() { alert(grid.jqGrid('getGridParam', 'rowNum')); }, 0);
    }
}
我使用这种方法:

onPaging : function(pgButton) {
        if (pgButton == 'records') {
            alert($('.ui-pg-selbox').val());
        }
    }
看起来结构更漂亮:)

我使用这种方法:

onPaging : function(pgButton) {
        if (pgButton == 'records') {
            alert($('.ui-pg-selbox').val());
        }
    }

看起来结构更漂亮:)

谢谢你的回复!正如我从阅读有关setTimeout(…,0)的内容中了解到的,这将使用由浏览器确定的最小延迟,而不是0毫秒。因此它不会立即执行。但它会一直有效吗?我的意思是,如果它是在调用jqgrid的onPaging ajax之后引发的,那么ajax响应的时间会影响吗?好吧,它将在jqgrid的当前(撰写本文时为4.6.0)版本中工作,因为它在调用onPaging处理程序之后立即设置内部分页属性(例如rowNum)。如果在填充网格后将实现更改为设置这些属性,则此解决方案将停止工作。这是一种黑客手段,不是防弹的解决方案;如果jqgrid提供两个事件,一个在分页之前,一个在分页之后,那肯定会更好。感谢您的解释!谢谢你的回复!正如我从阅读有关setTimeout(…,0)的内容中了解到的,这将使用由浏览器确定的最小延迟,而不是0毫秒。因此它不会立即执行。但它会一直有效吗?我的意思是,如果它是在调用jqgrid的onPaging ajax之后引发的,那么ajax响应的时间会影响吗?好吧,它将在jqgrid的当前(撰写本文时为4.6.0)版本中工作,因为它在调用onPaging处理程序之后立即设置内部分页属性(例如rowNum)。如果在填充网格后将实现更改为设置这些属性,则此解决方案将停止工作。这是一种黑客手段,不是防弹的解决方案;如果jqgrid提供两个事件,一个在分页之前,一个在分页之后,那肯定会更好。感谢您的解释!如果页面上有多个网格,这很可能会给您带来错误的结果?如果页面上有多个网格,这很可能会给您带来错误的结果?