Проблема с пейджером JqGrid - общее количество страниц и записей отображается неправильно - PullRequest
1 голос
/ 28 июля 2010

Проблема: мой пейджер jqGrid показывает страницу 1 из NaN вместо правильного количества страниц.

Fiddler показывает, что я получаю правильный JSON от моего вызова WCF:

{"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 для общего количества страниц и общего количества записей. Есть идеи? Спасибо за вашу помощь

Ответы [ 3 ]

1 голос
/ 29 июля 2010

Олег, взглянув на пример кода, который вы мне прислали, я понял, что для корректной работы пейджера необходимо включить grid.formedit.js. На моей странице были ссылки только на grid.locale-en.js и jquery.jqGrid.min.js. Видимо, этого недостаточно. Я думаю, что урок для меня состоит в том, чтобы включить все библиотеки .js, которые являются частью загрузки jqGrid. Спасибо за вашу помощь

1 голос
/ 15 ноября 2011

Несмотря на то, что это не является проблемой, параметр loadonce может вызывать аналогичную проблему (общее количество страниц всегда равно 1).Необходимо установить значение false:

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

Параметр loadonce запрещает клиенту загружать дополнительные данные после начальной загрузки.В качестве побочного эффекта клиент игнорирует total и records в ответе сервера, используя только количество строк для заполнения пейджера.

В моем собственном коде loadonce должно быть установлено по умолчанию вtrue, поскольку пейджер работал, как только я явно установил его на false.

1 голос
/ 29 июля 2010

Кажется, что правильный формат 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"

но, вероятно, это происходит только во время публикации данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...