1

さまざまなタイプのデータオブジェクトのグリッドビューがたくさんあるページ結果ページがあります(他の場所で検索クエリを送信すると表示されます)。

明らかに、一部のクエリは他のクエリよりも時間がかかります。必要なデータが得られたらすぐに各グリッドビューをレンダリングするにはどうすればよいですか?

これは、ページロードだけでなくポストバックでも機能する必要があるため、私にとっては注意が必要です。また、オブジェクトデータソースはページのロード/ポストバック時に自動的に起動します。データを取得するためにプログラムでメソッドを呼び出しているわけではありません。これを変更する必要がありますか?

4

2 に答える 2

2

@ガレス・ジェンキンス

ページは、最初の更新パネルを返す前にすべてのクエリを実行するため、そこで時間を節約することはありません。

これを行うための秘訣は、複雑なグリッドビューのそれぞれをユーザー コントロールに移動し、ユーザー コントロールで、Object DataSource のがらくたを取り除き、コード ビハインドでバインディングを行うことです。

この状況でのみバインドするようにバインド コードを記述します。

if (this.isPostBack && ScriptManager.IsInAsyncPostback)

次に、ページが読み込まれたら、JavaScript を使用して更新パネルをプログラムで更新します。準備ができたら、個々のグリッドビュー レンダリングを取得します。

于 2008-09-12T18:38:10.990 に答える
0

可視性がfalseに設定されているパネル内にDataGridを配置し、パネルの可視性をtrueに設定するサーバー側関数を呼び出す本体のonloadイベントからクライアント側のjavascript関数を呼び出すことができますか?

If you combined this with an asp:updateProgress control and wrapped the whole thing in an UpdatePanel, you should get something close to what you're looking for - especially if you rigged the js function called in onload to only show one panel and call a return function that showed the next etc.

于 2008-09-12T18:10:44.910 に答える