私のアプリは、ユーザーが行う可能性のあるさまざまなクエリの結果を使用して、jqGrid に何度もデータを入力します。クエリの形式は次のとおりです。ドキュメントに単語「x」が含まれるすべてのドキュメントについて、give me title、documentCategory、hits、documentType。ユーザーは、このような (ajax) クエリを次々に作成する場合があります。クエリを発行します。データベースから返されたタイトルのリストを読み取ります。いくつかの作業を行います。別のそのようなクエリを作成します。などなど。
グリッドを 1 回作成すると、ajax データベース呼び出しが何らかのデータを返すと、次のように、グリッドは最初にデータが取り除かれ、次に再データが取り込まれます。
$("#titles-table").jqGrid('clearGridData');
.
.
. // loop through the data returned by the ajax database call
for (var i = 0 ...
{
row = ...
$("#titles-table").jqGrid('addRowData',i, row);
}
しかしバージョン 3.7 では、グリッドにaddRowDataよりも高速であると思われる新しい 'data' プロパティが追加されました。この新しいデータプロパティを示す例では、グリッドがインスタンス化されている ( colModelが定義されているなど) ときにグリッドが設定されていることを示しています。しかし、グリッドが既に存在し、clearGridData呼び出しでデータが取り除かれると仮定すると、グリッドのデータプロパティを設定してグリッドを再入力する方法はありますか? 次のように、clearGridData に類似したもの:
$(#titles-table).jqGrid('setGridData', data);
グリッドを作成するより高速な方法に興味があります。グリッドに 75 行あると、Firefox は「スクリプトが長すぎます」というメッセージを表示しますが、Chrome と Opera と Safari は、この量のデータを即座に処理します。