首先關於參數postData(請參閱http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options),您可以向服務器發送附加信息。在Should one replace the usage addJSONData of jqGrid to the usage of setGridParam(), and trigger('reloadGrid')?你可能也可以找到一些信息,這可以幫助你在jqGrid中進行數據刷新。
在我看來,這可能不是jqGrid以外的自定義過濾標準數據過濾(搜索)可以幫助你。我在某些網頁上使用混合自定義過濾,並幾乎在任何地方使用「高級搜索」(請參閱http://www.trirand.com/jqgridwiki/doku.php?id=wiki:advanced_searching)。 「高級搜索」是一種讓您可以在不同條件下同時搜索多個字段的方式。
您的網址會被追加:
_search = {_搜索} &頁= {PAGE} &行= {行} & SIDX = {sortIndex} & SORD = {sortDirection} & searchField = {searchField } &搜索字符串= {}搜索字符串& searchOper = {} searchOper過濾& = {}過濾
,你應該更新你的函數原型記者。從過濾器的信息JSON壓縮對象像
filters =
{"groupOp":"AND",
"rules":[
{"field":"invdate","op":"ge","data":"2007-10-06"},
{"field":"invdate","op":"le","data":"2007-10-20"},
{"field":"name","op":"bw","data":"Client 3"}
]
}
分析從過濾信息我個人使用DataContractJsonSerializer
。該代碼片段是:
MemoryStream ms = new MemoryStream (Encoding.Unicode.GetBytes (filters));
DataContractJsonSerializer serializer = new DataContractJsonSerializer (typeof(jqGridSearchFilter));
ms.Position = 0;
jqGridSearchFilter searchFilter = (jqGridSearchFilter)serializer.ReadObject (ms);
string groupOp = null;
if (!String.IsNullOrEmpty(searchFilter.groupOp) &&
String.Compare (searchFilter.groupOp, "AND", StringComparison.Ordinal) == 0)
groupOp = "AND";
else if (!String.IsNullOrEmpty(searchFilter.groupOp) &&
String.Compare (searchFilter.groupOp, "OR", StringComparison.Ordinal) == 0)
groupOp = "OR";
else {
arSearchStringParameters = null;
return null;
}
for (int i=0; i "WHERE ".Length)
sb.Append (groupOp);
AppendWhere (sb, _search,
searchFilter.rules[i].field, searchFilter.rules[i].op, searchFilter.rules[i].data,
arColumnInfos, parameters);
}
其中
internal enum GroupOperation {
AND,
OR
}
[DataContract]
internal class jqGridSearchFilterItem {
[DataMember]
internal string field = null;
[DataMember]
internal string op = null;
[DataMember]
internal string data = null;
}
[DataContract]
internal class jqGridSearchFilter {
[DataMember]
internal string groupOp = null; //GroupOperation groupOp;
[DataMember]
internal List rules = null;
}
您可以將過濾器會話,並與每一個asynchronic數據請求應用它們。 – LukLed 2010-04-20 11:08:39
感謝Lukled在會話中存儲過濾器爲我工作 – paresh 2010-04-21 09:07:32
在會話中存儲過濾器時出現的問題是:當我使用不同的過濾器打開兩個窗口時,發生同一頁面?我將成爲一個非常困惑的用戶。 – Ryan 2010-04-21 16:09:58