【问题标题】:JqGrid pager problem - Total pages and records does not display correctlyJqG​​rid 寻呼机问题 - 总页数和记录无法正确显示
【发布时间】:2010-07-28 18:06:30
【问题描述】:

问题:我的 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。有任何想法吗?谢谢你的帮助

【问题讨论】:

  • 尝试在您的jsonReader中设置这些名称

标签: javascript jquery jqgrid


【解决方案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"

但可能只是在发布数据时出现。

【讨论】:

  • 如果我使用 'Bill(s) {0} - {1} of {2}' 仍然是同样的问题,它只显示 Bill(s) NaN - NaN of NaN。我的 JSON 响应消息格式正确,因为我可以在网格中显示实际行。它只是寻呼机显示它期望的所有整数值的 NaN。谢谢
  • Oleg,JSON 数据丢失“是我在发布期间粘贴字符串时完成的。
  • 您应该在您未在此处发布的代码部分中搜索您的问题。看看ok-soft-gmbh.com/jqGrid/PagerProblem.htm。这项工作没有任何问题。
  • 顺便说一句,这不是错误,但在我看来,参数cell: "" jqGrid 不知道。
  • @Oleg:+1 用于演示的解释。另外我有一个小查询,如果 jqgrid 有时没有行,它会显示Page 1 of Nan Nan 这里是什么?在这里我问了question
【解决方案2】:

Oleg,通过查看您发送给我的示例代码,我认为要使寻呼机正常工作,您需要包含 grid.formedit.js。在我的页面中,我只引用了 grid.locale-en.js 和 jquery.jqGrid.min.js。显然这还不够。我想,我学到的教训是包含所有 .js 库,它们是 jqGrid 下载的一部分。感谢您的帮助

【讨论】:

    【解决方案3】:

    虽然这里似乎不是问题,但loadonce 参数可能会导致类似的问题(总页数始终设置为 1)。应该强制false

    $myGrid.jqGrid({
            datatype: 'json',
            loadonce: false,
            ...
    }
    

    loadonce 参数可防止客户端在初始加载后加载更多数据。作为副作用,客户端忽略服务器响应中的totalrecords,仅使用行数来填充寻呼机。

    在我自己的代码中,loadonce 必须默认为 true,因为一旦我将其显式设置为 false,寻呼机就会工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-27
      • 1970-01-01
      • 2016-10-01
      相关资源
      最近更新 更多