非常に具体的な問題があります。4 つのオプションがある小さなフォームがあります。記入してもしなくても構いません。「OK」をクリックすると、これらのオプションに応じて jqGrid にデータが読み込まれます。しかし、自分の列がどのように見えるかわからないので、サーブレットに列モデルと列名を生成させます。したがって、データをロードするためにAJAXリクエストを作成し、それを「ローカル」データとしてjqGridに入力する必要があります。私はページネーションを使用したいと思います。
したがって、私の質問: ローカル データを介して既に確立された後、jqGrid にさらにデータを読み込むにはどうすればよいですか?
コードは次のとおりです。
$.ajax({
type : 'GET',
url : 'data.jsp',
data : reqData,
dataType : 'json',
error: function() {
$("#dialog-message").dialog("open");
$("#ajax-loader").css("display", "none");
},
success : function(result) {
jQuery("#results").jqGrid({
data : result.rows,
datatype : "local",
colNames : result.columnNames,
colModel : result.columnModel,
pager : $('#pager'),
rowNum : 1000,
scroll : true,
viewrecords : true,
sortname : 'TITEL',
width : window.innerWidth - 30,
height : window.innerHeight - 190,
altRows : true,
loadError: function() {
$("#dialog-message").dialog("open");
$("#ajax-loader").css("display", "none");
},
loadComplete: function() {
$("#ajax-loader").css("display", "none");
}
}).jqGrid("navGrid", "#pager", {
edit: false,
add: false,
del: false,
search: true,
refresh: false
}).jqGrid("gridResize");
}
});
/編集: 次のことを試みましたが、グリッドが実際に合計ページ数がわからないという問題は解決しません (実際には、その時点ではわかりません)。また、ロード後、ローカルデータのみを取得すると考えます。おそらくonScrollイベントか何かがありますか?私はそれを見つけていません。
datatype : !json ? "local" : function(postdata) {
$.ajax({
type: 'GET',
url: 'data.jsp',
data: $.merge(postdata, reqData),
dataType: 'json',
success: function(data, status, jqXHR) {
var mygrid = jQuery("#results")[0];
var myjsongrid = eval("("+jqXHR.responseText+")");
mygrid.addJSONData(myjsongrid);
}
});
},