2009-04-16 6 views
1

aspxページに4つのGridViewを設定する必要がありますが、ページロード時に1つだけデータテーブルをバインドするだけです。私はページロード後に他の3つを繁殖させる必要がある。c#Ajaxレイジーロード

これを行うには、ajaxを使用する最良の方法は誰も知っていますか?

現在のところ、私は3 GridViewsをpupulatesボタンが__doPostBackにjavascriptを使用していますが、残念ながら、これは強制的に更新パネルを使用してもフルページの読み込みを強制します。ロードするページが必要で、データテーブルが返されるときにGridViewにデータを取り込みます。

多くの提案があります。

答えて

2

jqueryを使用して$( "#targetDiv")を介してdivを作成することはできますが、これを行う方法は問題ありません。load( "contentUrl");それを行うためのよりクリーンな方法かもしれません。私はEnablePartialRenderingがあなたのScriptManagerに真であると仮定し

  1. :とにかく、あなたの現在の実装の作業を取得するためには、あなたが見てみたいいくつかのことがあるかもしれません(常にチェックする価値!)。
  2. __dopostback呼び出しのeventTargetが更新パネルの非同期トリガーとして設定されていること、または1つのUpdatePanelのみを使用している場合はUpdatePanel内にあることを確認してください。 (See here for details
  3. ボタンをクリックしたときにフォームが正常に送信されていないことを確認するために、これをボタンにアタッチした場合は、onclickイベントハンドラで実行されるjavascriptコードからfalseを戻してください。
+0

ありがとうございます!私がしなければならなかったのはEnablePartialRenderingを実際の広告に設定したことだけでした。 – user91556

+0

これはうれしいことです。うれしいことです。:) –

+0

Awwwwテストページではすべて正常に動作しますが、マスターページを使用するとすぐにページ全体が更新されます。 EnablePartialRendering = true、 __dopostback呼び出しが非同期トリガーで、 であり、__doPostBack関数がfalseを返します。 – user91556

0

質問を正しく理解していれば、ページがブラウザに入ってからデータを読み込む必要があります。この場合、ページがクライアントに読み込まれたときにJavaScriptを使用してイベントを発生させることができます。

私が使用した1つの方法は、ページ上に非表示の(CSSではなく、プロパティではなく)ボタンを置いて「クリック」することです。ボタンクリックイベントのイベントは、ページのコードに配線する必要があります。また、ボタンは、バインドするグリッドが含まれているか、リロードさせるための適切なトリガーがある更新パネルになければなりません。

JQueryを見て、このコードが起動したときに管理することができます。 $(document).ready(function(){/ *あなたのコードはここに... * /});メソッドは、DOM全体が利用可能になった後に起動します。これは、ページ全体を読み込むのを待つよりも高速です(イメージなど)。