假设在navgrid中行号从10更改为30,并且我们按如下方式处理onPaging:
...
onPaging: function(pgbtn) {
var rowNum = $(this).getGridParam('rowNum');
return 'stop';
}这是因为我认为rowNum应该是30岁吗?
发布于 2015-02-20 17:10:59
执行顺序被更改(比较jqGrid 4.7.0中的这条线和jqGrid 4.4.0中的这条线)。jqGrid首先在jqGrid 4.4.0中更改了rowNum``and then called in `,但在jqFeid 4.7.0中更改了oder。
要访问rowNum的新值,应该直接从相应的<select>控件获取rowNum的值。如果在网格底部使用pager,则相应的代码可能如下:
onPaging: function (pgButton) {
var p = $(this).jqGrid("getGridParam"),
newRowNum = parseInt($(p.pager).find(".ui-pg-selbox").val());
if (...) { // some stop criteria
return "stop";
}
}如果使用toppager: true选项,则jqGrid在网格顶部创建寻呼机,然后将toppager参数的值从true更改为寻呼机的选择器id。这样您就可以使用下面的代码
onPaging: function (pgButton) {
var p = $(this).jqGrid("getGridParam"),
newRowNum = parseInt($(p.toppager).find(".ui-pg-selbox").val());
if (...) { // some stop criteria
return "stop";
}
}在前面的代码示例中,它只使用p.toppager而不是p.pager。
在使用顶部和底部寻呼机时,必须同时获得两个值,并选择与rowNum参数的值不相等的值:
onPaging: function (pgButton) {
var p = $(this).jqGrid("getGridParam"),
rowNumBottom = parseInt($(p.pager).find(".ui-pg-selbox").val()),
rowNumTop = parseInt($(p.toppager).find(".ui-pg-selbox").val()),
newRowNum = p.rowNum === rowNumTop ? rowNumBottom: rowNumTop;
if (...) { // some stop criteria
return "stop";
}
}顺便说一下,在寻呼机的其他更改之后调用onPaging时存在关闭问题,例如,如果用户在输入框中键入了新的寻呼机号码的新值。
我现在正在github上开发免费的 jqGrid作为我的叉子。我修改了jqGrid的代码,以便onPaging接收第二个参数,即具有属性newPage、currentPage、lastPage、currentRowNum和newRowNum的对象。还添加了相应的jQuery事件jqGridPaging。此外,我还更改了第一个参数的值,使其对应于文献资料,该值将是字符串"first"、"last"、"prev"或"next",以防用户单击相应的寻呼机按钮。实际上,4.7版使用的是相应寻呼机按钮的id,而不是"first"、"last"、"prev"、"next"。因此,字符串"first"、"last"、"prev"、"next"可以附加"_"和寻呼机的id。
因此,您只需在回调代码中直接使用options.newRowNum或options.currentRowNum:
onPaging: function (pgButton, options) {
// one can use options.newRowNum directly
// the value options.currentRowNum is identical to
// $(this).jqGrid("getGridParam", "rowNum")
if (...) { // some stop criteria
return "stop";
}
}发布于 2016-10-25 23:47:00
对于上、下寻呼机,我要补充Oleg的答复:
onPaging: function (pgButton) {
var p = $(this).jqGrid("getGridParam"),
rowNumBottom = parseInt($(p.pager).find(".ui-pg-selbox").val()),
rowNumTop = parseInt($(p.toppager).find(".ui-pg-selbox").val()),
newRowNum = p.rowNum === rowNumTop ? rowNumBottom: rowNumTop;
if (...) { // some stop criteria
return "stop";
}
// update the current value so subsequent changes are detected
p.rowNum = newRowNum;
}这将处理用户更改顶部寻呼机上的值,然后在底部寻呼机上再次更改该值的情况。上面的代码将继续检测最高寻呼机值。
https://stackoverflow.com/questions/28629974
复制相似问题