2

私のアプリは、ユーザーが行う可能性のあるさまざまなクエリの結果を使用して、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 は、この量のデータを即座に処理します。

4

2 に答える 2

0

jqGridのドキュメントによると、このオプションは、グリッドが作成された後に変更できますsetGridParam。例えば:

$(#titles-table).jqGrid('setGridParam', data);
于 2010-07-18T22:20:04.017 に答える
0
$('#table').addJSONData(data);
于 2012-01-17T09:04:51.843 に答える