问题:我的jqGrid寻呼机显示NaN的第1页而不是正确的页数。
Fiddler表示我从WCF调用中获取了正确的json:
{"total":1,"page":1,"records":2,"rows":[{JDEVendorNumber":99999999,
"VendorName":"Super Vendor","BillID":"99999999wwerer ",
"CommunityName":"Post Abbey ",
"PrimaryAcctNumber":"wwerer","CommunityID":"600402","RecordID":8}]}
我的网格设置如下:
$invoiceGrid.jqGrid({
datatype: 'json',
mtype: 'GET',
url: url,
colNames: ['Vendor Name', 'CommunityName', 'Primary Acct Nbr', 'BillID'],
colModel: [
{ name: 'VendorName', index: 'VendorName', width: 203, align: 'left' },
{ name: 'CommunityName', index: 'CommunityName', width: 215, align: 'left' },
{ name: 'PrimaryAcctNumber', index: 'PrimaryAcctNumber', width: 260, align: 'left' },
{ name: 'BillID', index: 'BillID', hidden: true }
],
rowNum: 50,
gridview: true,
rowList: [10, 20, 30, 50],
pager: $('#invoicepager'),
sortname: 'PrimaryAcctNumber',
viewrecords: true,
sortorder: "asc",
rownumbers: false,
hidegrid: false,
repeatitems: false,
recordtext: 'Bill(s) {0} - {1} ',
cell: "",
height: "auto",
loadComplete: function(data) {
//alert('total is ' + data.responseText);
if ($invoiceGrid.jqGrid('getGridParam', 'records') == 0) {
NoRecordsFound();
} else {
SetSearchResultsInterface('bills');
}
EnableControl($search, true);
Global.grdInitialized = true;
$progressbar.hide();
},
jsonReader: {
repeatitems: false,
id: "RecordID"
}
}).navGrid('#invoicepager', { edit: false, add: false, del: false, search: false, refresh: false });
我的数据显示正确,但寻呼机显示总页数和总记录的NaN。有任何想法吗?谢谢你的帮助
答案 0 :(得分:1)
recordtext
的正确格式似乎应该包含3个元素,如
recordtext: "View {0} - {1} of {2}"
您使用
recordtext: 'Bill(s) {0} - {1} '
您可以使用
recordtext: 'Bill(s) {0} - {1} of {2}'
代替。但是,如果使用原始数据,我也无法真正重现您的问题(请参阅http://www.ok-soft-gmbh.com/jqGrid/PagerProblem.htm没有问题)。 此外,您的JSON数据应该是固定的:
[{JDEVendorNumber"
应固定为
[{"JDEVendorNumber"
但可能只是在发布数据时才出现。
答案 1 :(得分:1)
Oleg,通过查看您发送给我的示例代码,我认为要使寻呼机正常工作,您需要包含grid.formedit.js。在我的页面中,我只引用了grid.locale-en.js和jquery.jqGrid.min.js。显然这还不够。我想,为我学到的经验教训是包含jqGrid下载中所有的.js库。谢谢你的帮助
答案 2 :(得分:1)
虽然这里似乎没有问题,但loadonce
参数可能会导致类似的问题(总页数始终设置为1)。它应该被强制为false
:
$myGrid.jqGrid({
datatype: 'json',
loadonce: false,
...
}
loadonce
参数可防止客户端在初始加载后加载更多数据。作为副作用,客户端忽略服务器响应中的total
和records
,仅使用行数来填充寻呼机。
在我自己的代码中,loadonce
必须默认为true
,因为只要我明确将其设置为false
,寻呼机就会正常工作。