如何更改sidx,sord,过滤jqGrid中的参数名称

时间:2011-08-13 11:04:11

标签: jqgrid

如果列名是sidx,sord,filters,则jqGrid获取数据会被破坏。我尝试使用下面的代码向他们添加下划线,但这些参数仍然没有下划线传递。其他参数如_rowid,_page等可以使用下划线正确传递。

如何在jqgrid中使用sidx,sord,filters作为列名?

jQuery.extend(jQuery.jgrid.defaults, {
    prmNames: { id: "_rowid", oper: "_oper", page: "_page",
        sidx: "_sidx", sord: "_sord", page: "_page", rows: "_rows", filters: "_filters"
    }
});

1 个答案:

答案 0 :(得分:10)

我不明白你的意思是“如果列名是sidx,sord,过滤器,jqGrid获取数据”。不过,如果需要,您可以通过两种方式重命名或删除jqGrid参数:prmNamesserializeGridData

您应该仔细检查prmNames的默认值列表。在此过程中无法重命名filters,但重命名应使用的其他参数的名称

$.extend(jQuery.jgrid.defaults, {
    prmNames: {
        id: "_rowid", page: "_page", rows: "_rows",
        oper: "_oper", sort: "_sidx", order: "_sord"
    }
});

sortorder代替sidxsord)。要将filters重命名为_filters并删除发送空searchFieldsearchStringsearchOper,您可以执行与我所描述的相同的here

serializeGridData: function (postData) {
    var myPostData = $.extend({}, postData); // make a copy of the input parameter
    myPostData._filters = myPostData.filters;
    delete myPostData.filters;
    delete myPostData.searchField;
    delete myPostData.searchString;
    delete myPostData.searchOper;
    return myPostData;
}

使用FiddlerFirebug,您可以验证the demo的网址中是否使用了以下参数

_search=true&nd=1313235583212&_rows=10&_page=1&_sidx=invdate&_sord=desc&_filters=...

像你一样需要。