jqGrid を使用して多数の「動的」グリッドを表示する必要があります。動的とは、グリッドの定義とデータの両方がデータベースから取得されることを意味します。ページには多くのグリッドがあるため、サーバーのトリップ数を最小限に抑えようとしています。また、大量のデータがあるため、サーバー側のページングは必須です。
私のワークフローは
- 各グリッドの初期化時に、 1 回のサーバー呼び出しでグリッド定義とデータの最初のページを取得します。
- ユーザーがソート/ページングする場合、サーバーからデータのページを取得します
1 回の呼び出しでグリッド定義とデータの最初のページを取得したいので、datatype: 'json', url: '###' アプローチは使用できません。代わりに私は:
grid.jqGrid({
mtype: 'post',
...
datatype: function (postdata) {
if (!init.data) {
var request = {
screenId: settings.screenId,
pageNumber: postdata.page,
pageSize: postdata.rows,
sortColumn: postdata.sidx,
sortDirection: postdata.sortd,
date: settings.date
};
site.callWs("/MyService", request, function (pageResponse) {
//WHAT TO CALL HERE TO SET A PAGE OF DATA?
});
} else {
//WHAT TO CALL HERE TO SET A PAGE OF DATA?
init.data = null;
}
}
});
私のデータオブジェクト(pageResponseまたはinit.data)は次のようになります
データのページが返されたら、jqGrid でどのメソッドを呼び出すべきかわかりません。addJSONData を検討しましたが、JSON を文字列に変換してから EVAL() を使用するのは効率が悪いようです。また、addRowDataまたはデータプロパティの設定を検討しましたが、サーバー側のページングを行っていることをjqGridに指示する方法がわかりません。データプロパティを1ページのレコードに設定した場合、jqGridにそれを伝えるために何をする必要がありますか?合計 50 件のレコードがあり、これは 10 ページ中の 1 ページです。
ご協力いただきありがとうございます。