グリッドが作成される前にaddJSONData
、メソッドを呼び出そうとしていると思います。jQuery("#projectList").jqGrid({...});
の使用法addJSONData
は事実上常に不要です(ここでの主題についての私の最初の投稿からの1つを参照してください)。同じように、あなたは決してeval
邪悪な方法を使うべきではありません。代わりにjQuery.parseJSONまたはJSON.parseを使用します。
私はあなたがdatatype: 'json'
あなたの問題を解決するために使うべきだと思います。ケースで他のjqGridオプションをどのように使用するかを示すために、さらにコードを投稿する必要があります。
更新:前の質問から、[検索]ボタンをクリックしたフォームからサーバーに追加のデータを送信したいようです。この場合、コードを次のように変更することをお勧めします
var $grid = $("#projectList");
$grid.jqGrid({
url: 'user595234.json',
datatype: "json",
serializeGridData: function (data) {
return $.param(data) + '&' + $("#project_search_form").serialize();
},
jsonReader: {id: "projectId", repeatitems: false},
colNames: ['ID', 'Name'],
colModel: [
{name: 'projectId', width: 255},
{name: 'name', width: 255}
],
rowNum: 10,
rowList: [10,20,30],
pager: '#projectPager',
sortname: 'projectId',
viewrecords: true,
sortorder: "desc",
caption: "Simple data manipulation",
height: "auto"
}).jqGrid("navGrid", "#projectPager", {edit: false, add: false, del: false});
$("#search").click(function () {
$grid.trigger("reloadGrid", [{page: 1}]);
});
デモでは、 jQuery.serializeの使用例からフォームを取得し、少し変更します。必要なデータを表示します
さらに、FiddlerまたはFirebugに関して簡単に確認できるように、URLには以下のような追加のパラメーターが追加されます。
...?_search=false&nd=1336057299806&rows=10&page=1&sidx=projectId&sord=desc&a=1&b=2&c=3&d=4&e=7&f=8
標準パラメータ
_search=false&nd=1336057299806&rows=10&page=1&sidx=projectId&sord=desc
フォームからのパラメータが追加されます
a=1&b=2&c=3&d=4&e=7&f=8
一部のシナリオでは、代わりにjQuery.serializeArrayを使用できます。これにより、データを別の形式(JSONなど)でシリアル化したり、データを別の形式(ここを参照)に変換したりできます。これは、 $ 。extendを使用して標準のjqGridパラメーターと簡単にマージできます。