jQgrid更改参数已发送到服务器

jQgrid更改参数已发送到服务器,jqgrid,Jqgrid,我正在使用cookies加载用户以前的排序和分页选项。我希望将这些保存的值设置为服务器接收的参数 我希望更改的参数如下(行通过prmNames替换为max) /&max=20&page=1&sidx=&sord=asc 我试过使用: $.extend($.jgrid.defaults, { sidx:"fName", sord:"desc", page:2, rows:10}); 以及以下各项的变化: beforeRequest:functio

我正在使用cookies加载用户以前的排序和分页选项。我希望将这些保存的值设置为服务器接收的参数

我希望更改的参数如下(行通过prmNames替换为max)

/&max=20&page=1&sidx=&sord=asc

我试过使用:

   $.extend($.jgrid.defaults, {
    sidx:"fName",
    sord:"desc",
    page:2,
    rows:10});
以及以下各项的变化:

      beforeRequest:function(){
        $('#grid').jqGrid('setGridParam', {
            sidx: "fName",
            sord: "desc",
            page: 2,
            max: 10
        });

    }

它使用$.extend($.jgrid.defaults…)更改
页面的值,但我无法更改其他参数。

您只需使用
setGridParam
设置jqGrid的参数,这些参数的其他名称为
sidx
sord
page
rows

sidx -> sortname
sord -> sortorder
page -> page
rows -> rowNum
因此,最好是使用从cookie初始化的上述参数直接创建jqGrid

如果直接使用所需参数创建网格时遇到问题,可以首先使用
datatype:“local”
创建网格,这将阻止加载网格。然后更改所需参数,并将
datatype
另外设置为所需值('json'或'xml').最后重新加载网格。因此代码应如下所示

$('#list').jqGrid('setGridParam'{
数据类型:“json”,
sortname:“fName”,
巫师:“描述”,
页码:2,
行数:10
}).触发器(“重新加载网格”);

如果直接使用所需参数创建网格时遇到问题。另外,使用
datatype:“local”
创建网格将阻止加载网格

我可以使用上一个会话中的postData对象设置postData吗?我还可以执行类似以下操作:`beforeProcessing:function(){grid.jqGrid('setGridParam',{postData:postData})}`@Jaym:一般来说你可以,但这取决于上下文是否正确。我建议你阅读描述我如何理解和实现这个问题的内容。你可以查看我发布的演示。我希望它能回答你所有的问题。我使用的技术与关于cookies的问题类似。正如你所说的d由于达到最大cookie大小,我遇到了问题。我将尝试在本地实现它;这看起来是最好的选择。演示正是我试图实现的。感谢您的帮助!非常恼人的是,参数名称与表单值中发送的值不匹配。感谢您保存
sidx->sortname
我花了很多时间。我以为我疯了。@timbrown:不客气!顺便说一下,你可以使用jqGrid的
prmNames
重命名几乎所有将发送到服务器的参数。例如
prmNames:{page:“requestedPage”,rows:“rowsPerPage”,sort:“sortIndex”,order:“sortOrder”,search:“isSearching”}