Jquery onPaging事件引发时数据类型为json的jqGrid的rowNum
我试图在服务器上保存jqGrid设置,如过滤器、排序顺序和其他设置。除了rowNum设置外,所有工作正常。要保存此参数,我将使用event onPagingJquery 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
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提供两个事件,一个在分页之前,一个在分页之后,那肯定会更好。感谢您的解释!如果页面上有多个网格,这很可能会给您带来错误的结果?如果页面上有多个网格,这很可能会给您带来错误的结果?