filterToolbar メソッドを使用して jqGrid のクライアント側検索機能を有効にしようとしていますが、機能させることができません。グリッドは、ページの読み込み時に asmx サービス (document.ready) から返される JSON を介してデータを正しく読み込みますが、検索ツールバーを使用して任意の列を検索しようとすると、グリッドは検索せずに更新されるだけです。
他の同様の質問とその回答を既に確認しましたが、問題の解決に役立つものはありませんでした。誰かが私の jqGrid スクリプトを以下でチェックして、何が問題なのか、何が欠けているのかを教えてくれるかもしれません。参考までにjqGridのバージョン「4.5.2」を使用しています。
$('#tblTargetDetails').jqGrid({
url: 'PostHandlers/CommonHandler.asmx/GetTargetDetails',
datatype: 'json',
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
ajaxRowOptions: { contentType: "application/json; charset=utf-8", dataType: "json" },
postData: "{'TargetID': '" + TargetID + "'}",
mtype: 'POST',
colNames: ['Team ID', 'Member UserID', 'Measure', 'Product', 'Month1', 'Month2'],
colModel: [
{ name: 'TeamID', index: 'TeamID', width: 55, search: true, sorttype: 'int' },
{ name: 'MemberUserID', index: 'MemberUserID', width: 90, search: true, stype: 'text' },
{ name: 'Measure', index: 'Measure', width: 90, search: true, searchoptions: {} },
{ name: 'Product', index: 'Product', width: 90, search: true },
{ name: 'Month1', index: 'Month1', width: 80, editable: true, search: true },
{ name: 'Month2', index: 'Month2', width: 80, editable: true, search: false }],
jsonReader: {
root: "d.TargetDetails",
records: "d.RecordsCount",
id: "ID",
cell: "",
page: function () { return 1; },
total: function () { return 1; },
},
pager: '#pnlTargetDetails',
rowNum: 50,
rowTotal: 2000,
rowList: [20, 30, 50],
loadonce: true,
viewrecords: true,
gridview: true,
ignoreCase: true,
rownumbers: true,
caption: 'Target Details',
editurl: 'PostHandlers/CommonHandler.asmx/EditTargetDetail',
serializeRowData: function (postData) {
return JSON.stringify({ 'content': JSON.stringify(postData), 'UserID': UserID });
},
onSelectRow: function (id) {
if (id && id !== lastSel) {
$('#tblTargetDetails').restoreRow(lastSel);
lastSel = id;
}
$('#tblTargetDetails').jqGrid('editRow', id, true);
}
});
$('#tblTargetDetails').jqGrid('navGrid', '#pnlTargetDetails', { search: true, edit: false, add: false, del: false });
$('#tblTargetDetails').jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false });
あらかじめご了承ください。
ありがとう。