2011-08-13 31 views
6

如果列名是sidx,sord,filters,jqGrid獲取數據已損壞。我試着用下面的代碼向他們添加下劃線,但這些參數仍然沒有下劃線。像_rowid,_page等其他參數可以正確傳遞下劃線。如何在jqGrid中更改sidx,sord,過濾器參數名稱

如何使用sidx,sord,過濾器作爲jqgrid中的列名?

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

回答

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和去除空searchFieldsearchString發送和searchOper你可以做什麼我描述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的URL中使用的以下參數

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

像你一樣需要。

+0

非常感謝。這解決了這個問題。 – Andrus