JqG​​rid 中的服务器端分页(无网格分页器参数)

Server side pagination in JqGrid (no grid pager parameters)

我有一个需要服务器端分页的 jqGrid,我必须将一些搜索条件与请求一起传递 (POST),在初始调用时我能够获取结果,但我不能找到一种方法将服务器端分页所需的网格当前页面、索引和大小发送为 mentioned here

我使用 fiddle 和网络选项卡来检查我的请求是否生成了上述 post 中提到的附加内容,但找不到任何内容

下面是我的代码

JQGrid

        $("#list").jqGrid({
        serializeGridData: function () {
            return {'data': JSON.stringify($('#searchInfo').serializeObject()) };
        },
        url: '/SearchUsers/SearchResult',
        mtype: 'POST',
        datatype: "json",
        jsonReader: {
            page: "currentPage",
            total: "totalPages",
            records: "total",
            root: "rows",
            cell: "",
            id: "0"
        },
        contentType: 'application/json; charset=utf-8',
        rowNum: 10,
        pager: '#pager',
        sortname: 'FirstName',
        sortorder: "asc",
        autowidth: true,
        height: 'auto',
        shrinkToFit: false,
        forceFit: true,
        ignoreCase: true,
        sortable: false,
        colModel: [
            { label: 'ID', name: 'ID', align: "center", key: true, hidden: true, frozen: true },
            { label: 'First Name', name: 'FirstName', align: "left", sopt: ['cn'], frozen: true},
            { label: 'Last Name', name: 'LastName', align: "left", sopt: ['cn']},
            { label: 'Email Address', name: 'EmailAddress', align: "left", sopt: ['cn'] }
        ],
        viewrecords: true, // show the current page, data range and total records on the toolbar
        emptyrecords: "No records to view.",
        rowattr: Searchusers.RowFormatter,
    }).css("font-family", "Arial Narrow");
    $('#list').jqGrid('filterToolbar', { defaultSearch: 'cn' });
    $("#list").trigger("reloadGrid");
    $("#list").jqGrid('setFrozenColumns');
    $(".ui-jqgrid-titlebar-close").remove();

我的Json数据

{
"totalPages":"4", "currentPage":"1", "total":"35", "rows":[
{
"ID":"1", "FirstName":"a", "LastName":"a", "EmailAddress":"ab@cd-sg.com", }, {
"ID":"2", "FirstName":"s", "LastName":"k", "EmailAddress":"sk@co.com", }, {
"ID":"3", "FirstName":"K", "LastName":"G", "EmailAddress":"abc@abc-sg.com", }, {
"ID":"4", "FirstName":"as", "LastName":"asd", "EmailAddress":"asd@l.co", }, {
"ID":"5", "FirstName":"K", "LastName":"B", "EmailAddress":"KB@FB.com", } . . . 30多条记录 ] }

有什么帮助吗?

我自己不使用 serializeObject 插件,但我想它 returns 对象具有您要发送到服务器的属性。所以你可以尝试将你使用的 serializeGridData 的代码替换为以下

serializeGridData: function (postdata) {
    return {data: JSON.stringify($.extend({},
        $("#searchInfo").serializeObject(), postdata))};
}

它应该将 postdata 的 jqGrid 标准属性与 serializeObject 插件返回的对象结合起来。