gpt4 book ai didi

jquery - 即使使用正确的参数也无法显示最后一页

转载 作者:行者123 更新时间:2023-12-03 23:03:43 25 4
gpt4 key购买 nike

我和 jqgrid 战斗了大约 8 天(或更长时间),除了一个小问题之外,我已经完成了所有操作。我有一个很大的数据库,我正在尝试按部分显示它。我的意思是,每次 nextprevlastfirst 或当用户输入页码。我已经成功了,一切都正确,但现在网格没有显示正确的最后一页。我的意思是,即使有 42 页,它也只显示 1 页,共 1 页。

现在,当我输入页码时,网格会刷新并显示正确的结果,但寻呼机显示 2 of 1、5 of 1 等等。

我用过的是:

jQuery("#list").jqGrid({ 
datatype: "jsonstring",
datastr: JSON.stringify(gridDtls),
jsonReader:{
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
id: "0"
},

每次单击按钮时我用来运行查询的代码位于此处(请注意,以下代码仅在按下 Enter 时才起作用,因为按钮处于非事件状态):

onPaging: function(pgButton){ 
var status = returnUserStatus();
var page1 = $(this).jqGrid("getGridParam", "page");
var totalPages = $(this).getGridParam('lastpage');

if(pgButton=="next_pager"){


}
if(pgButton=="prev_pager"){


}
if(pgButton=="last_pager"){

}
if(pgButton=="first_pager"){

}else if((pgButton !="first_pager") && (pgButton !="last_pager") && (pgButton !="prev_pager") && (pgButton !="next_pager"))

},

对我来说一切似乎都是正确的。为什么 jqgrid 没有返回正确的页面?我确信我错过了一些小东西。请帮助我!!!

最佳答案

我认为问题的原因是您与服务器端分页一起使用的数据类型:“jsonstring”。相反,您应该使用datatype: "json"

为了便于理解:类型 datatype: "jsonstring"datatype: "local" 几乎相同。最重要的区别是 jqGrid 在 datatype: "jsonstring" 的情况下使用 jsonReader 而不是 localReader数据类型:“local”的情况下使用。页数将由 jqGrid 计算,服务器响应中的 totalrecords 值将被忽略

jqGrid 提供了很多自定义选项,可以将几乎所有 Ajax 请求发送到服务器并读取几乎所有响应。您只需使用相应的选项即可。因为您没有发布有关服务器接口(interface)的任何详细信息,所以我无法在这里写更多详细信息。

我建议您检查选项 prmNamesajaxGridOptions 以及回调 serializeGridDataloadBeforeSend。该选项允许自定义对服务器的请求。另一个选项 jsonReaderjsonmap 以及回调 beforeProcessing 允许读取服务器响应。

更新:The demo演示如何使用 datatype: "json" 在 jqGrid 分页上自动发送 Ajax 请求。选择网格的 id 非常重要。在您的情况下,它似乎是 login 列。所以代码可以是

$("#userslist").jqGrid({
url: "admin",
postData: {
WrJOB: "listUsers",
companyId: function () { return $("#companyId").val(); },
userStatus: function () { return returnUserStatus(); }
},
jsonReader: {
root: "gridDtls.rows",
page: "gridDtls.page",
total: "gridDtls.total",
records: "gridDtls.records",
repeatitems: false
},
prmNames: {page: "pageNum"},
colModel: [
{name: 'login', key: true, ...}
...
});

对 URL “admin” 的请求将自动包含 pageNum 参数。 "rows" 参数的值为 20。它是页面的大小。如果用户在分页器中选择另一个值(请参阅rowList: [20, 40, 60]),当前值将发送到服务器。选项prmNames将默认参数“page”重命名为“pageNum”。以同样的方式,您可以重命名将 jqGrid 发送到服务器的任何其他参数。使用 null 作为值将阻止向服务器发送参数。例如,您可以使用

prmNames: {page: "pageNum", nd: null, search: null, sort: null, order: null}

消除发送您不使用的参数。

关于jquery - 即使使用正确的参数也无法显示最后一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14353753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com