2011-07-12 12 views
0

私はasp.net Webアプリケーションを持っています。メインスレッドは、ランダムに生成されたデータでDataTableを(高速で)読み込む子スレッドを開始します。 DataTableをApplicationオブジェクトに保持します。asp.net - 継続的にグリッドを更新する

新しい行がテーブルに追加されるたびに、このDataTableにグリッドビューをバインドします。

どうすればいいですか? DataTableが更新されるたびに、メインスレッドがGridViewでDataBindをどのように呼び出すことができますか?

ありがとうございます。

答えて

0

ビュー内のグリッドをアプリケーションのデータセットにバインドするには、ポストバックが必要です。プログラムで行を高速で追加している場合は、各挿入のために大量のポストバックを行う(乱雑になる)か、通常のポストバック頻度で満足する必要があります。

ポストバックなしですばやくグリッドに配置するには、スクリプトでビューに追加してから、スケジュールに従ってアプリケーションにポストバックする必要があります。

0

いいえできません。あなたの最善の策は、更新をチェックするタイマー付きの更新パネル、または行カウントが変更されたかどうかを確認するためのajax呼び出しを入れて、更新パネルを更新することです。 プッシュ通知(すなわち、彗星のフレームワーク)のような他の「簡単ではない」オプションがあります

リアルタイム更新が必要なものは何ですか? ほとんどのWebアプリケーションは、サーバーをチェックするためにポーリング手法を使用します。

+0

私は既にミリ秒ごとにgridviewデータバインディングをトリガーするタイマーを使用して、更新パネル内にいます。しかし、データレートは時間とともに変化する可能性があり、データレートが100行/秒の期間に1,000データバインド/秒を実行するのは面倒です。私は時間ベースではなくイベントベースの方法でデータバインディングプロセスをトリガする必要があります。私は、テーブルが更新されたかどうかをチェックするAjaxコールの配置方法に興味があります。これは時間ベースのアプローチを意味しないでしょうか?研究のためのあらゆるリンクに感謝します。ありがとうございました。 – laailalalaa

+0

なぜあなたは1000秒をバインドするのですか?あなたのデータはそれをすばやくレンダリングすることもできませんので、それは決して速くそれを幸せにしていることは決してないでしょう。早く縛るために達成しようとしていることは何ですか? –

+0

はい - それはポーリングしているので、時間ベースのアプローチを意味します。他のオプションはプッシュ通知ですが、実装は難しいようです - wcf-or-ポーリング手法の場合は、最後のタイムスタンプに基づいて更新されたデータが2秒に1回確認されます。このデータを1秒間に1000回ポーリングすることで、大量のデータを高速に処理することはありません。誰もそれをしないのでここで何を達成しようとしているのか再度尋ねなければなりません。 –

関連する問題