JavaScript / AjaxコードからInfragistics WebGridデータをどのように管理しますか?
-
04-07-2019 - |
質問
一部のデータリストにInfragistics WebGridコントロールを使用する必要があるプロジェクトに取り組んでいます。 JavaScriptを使用してマップに表示するためにクライアント側でデータを読み込んでいます。その後、同じデータを複数のWebGrid内に表示する必要があります。使用可能なすべてのデータがWebGridに表示されますが、データのサブセットのみ(現在ビュー内にあるデータのみ)が常にマップにプロットされます。 JavaScript / Ajaxを使用してデータをロードしているため、一度だけロードし、同じメカニズムを使用してWebGridコントロールにもデータを入力します。
クライアント側のJavaScript / Ajaxコード内から完全にWebGridを操作するためのヒント/ポインターはありますか?
解決
頭に浮かぶ唯一の考えは、パフォーマンス関連です。 UltraWebGridの行の動的な作成と移入は、思っていたよりもかなり遅いことがわかりました。 (この例では、行をあるグリッドから別のグリッドに移動していたため、行数が多すぎるとパフォーマンスの問題が発生しました。)
今日説明したようなことをしていたら、可能な限りサーバー側からグリッドにデータを入力し、そこから関連する値をマップに表示します。
追加の免責事項として、Infragistics 2007.1を使用しました。 2008.xがこの分野で優れているかどうかはわかりません。
他のヒント
Infragistics Webgridsは非常に複雑なクライアントサイドオブジェクトモデルを公開し、これを使用してデータクライアントサイドにデータを入力できます。
最初に行うことは、webgridコントロールの完全なCSOMを確認することです。現在のドキュメントバージョンは、 http://help.infragistics.com/NetAdvantage/NET/2008.3/CLR2.0/
簡単な例を作成するには、グリッドへの参照を取得してから、行とデータを追加する必要があります。おそらく、JavaScriptですべてを試みるよりも、設計時にグリッドの列定義をセットアップする方が簡単でしょう。
最初:グリッドに参照を追加します:
var grid = igtbl_getGridById('dataGridControlID');
次に、新しい行を追加します:
var newRow = grid.Rows.addNew()
それが完了したら、行の列をループしてデータを埋めることができます。
var oCols = newRow.Band.Columns;
for(var i=0; i < oCols.length; i++) {
newRow.getCell[i].setValue(yourValue)
}
またはキーで各アドレスを指定してデータを入力します:
newRow.getCellFromKey(colKey).setValue(yourValue,fireEvents);