1

Jqgridを使用してデータを表示していますが、DataTypeをローカルとして使用しています。サーバーにポストバックして、バインドするデータを含むjsonStringを返したくありません。Json文字列をクライアントに渡し、addRowDataを使用してデータを1つずつ追加しています。各セルにある情報のせいでデータ数が多いと、ユーザーにとってはかなり時間がかかっているようです。

   for (var i = 0; i < gridData.length; i++)
       jQuery("#jqgInventory").jqGrid('addRowData', i + 1, JSON.parse(gridData[i]));

データをjqgridにバインドする別の方法はありますか?たとえば、データソースとしてJsonStringを指定するだけで、より高速にバインドするか、その他の提案があります。

注:DataTypeをJsonとして使用し、postUrlを設定すると、上記のメソッドよりも高速に動作します。

助けてください!よろしくお願いします、Alaa

4

2 に答える 2

3

この文は、jqGrid のドキュメントから直接引用されています。「グリッドに渡されたローカル データを格納する配列。配列データをロードする場合は、この変数を直接指定できます。比較的大きなデータでは遅い addRowData メソッドを置き換えることができます。データ"。それはまさにあなたが話していることです。

こちらをご覧ください: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options

これがあなたの実例です:http://jsfiddle.net/yNw3C/649/

オプションを入れるだけです:

data: my_data

my_data情報の配列はどこにありますか。

于 2012-04-27T16:50:09.800 に答える
0

Jeffery_The_Wind からの別の回答に同意します。彼は推奨するオプションの名前だけを書いていません: dataparameter . オプションを使用し、 afterInsertRowコールバックgridview: trueを使用しないことを追加することが重要です。

理解のために: の使用はaddRowData、グリッドを埋めるための最も遅く効果のない方法です。最も問題なのは、ページに要素を挿入したり、要素を変更したりする場合、少なくとも既存のすべての要素の位置をWeb ブラウザーで再計算する必要があることです。ページに配置する要素が多いほど、次の要素への挿入が遅くなります。

ほとんどの場合、次の 2 つの方法のいずれかで問題を解決します。

  • 1 つはDocumentFragment、DOM 要素の切り離された階層を準備し、フラグメントを 1 回の操作でページに配置するために使用します。
  • すべてまたはほとんどの変更内容を HTML フラグメントを表す文字列として作成し、innerHTMLプロパティを使用してページ上の 1 回の操作で多くの要素を配置します。

jqGrid は 2 番目の方法を使用します。動作させるために使用することが重要gridview: trueです。したがって、ローカル グリッドを埋める推奨される方法は次のとおりです。

  • datatype: 'local'およびdataデータでのパラメーターの使用。入力パラメーターの値の標準形式は、data行項目の配列です。すべてのアイテムには、 のnameプロパティの値のような同じプロパティがありますcolModel。さらに、すべてのアイテムには、グリッドidの要素 (行) の ID である「rowid」を定義するプロパティが必要です。<tr>別の形式の入力データがある場合は、データの形式を記述する対応するlocalReaderパラメータを使用する必要があります。
  • datatype: 'jsonstring'入力データを指定するおよびdatastrパラメータの使用法。パラメータの値はdatastr、同じ内容の JSON 文字列または JavaScript オブジェクトのいずれかです。したがって、データをオブジェクトとして持っている場合は、を使用して JSON 文字列に変換する必要はありませんJSON.stringify。jsonReaderを、おそらくdatatype: 'json'.

dataパラメーター ( の場合datatype: 'local') とdatastrパラメーター ( の場合)からのデータの挿入の主な違いdatatype: 'jsonstring'は、入力データがパラメーターの使用の場合は jqGrid によってソートされ、dataパラメーターの場合はソートされずに含まれることdatastrです。

于 2012-04-27T17:20:21.907 に答える