2009-09-15 6 views
0

の入れ子になったUpdatePanelsでAsyncPostbacksを変更するASP.net AJAXプロジェクト(WebForms)で
私はUpdatePanelを持っていますが、UpdatePanelにはUpdatePanelsで複数の入れ子になったコントロールがあります。 親コントロールは、私がそれに触れることができないサイトの非常に重要な部分です(また、多くの場所で再利用されます)、UpdatePanelのシャドウは現在の位置にとどまります。Asp.Net AJAX

更新パネルの子コントロールには、コントロールから一部だけをリフレッシュできる機能があります(UpdatePanelで区切られています)。
をPage_Load(上の基本的 に)私は、コードを持っているが、私は削除機能のウィッヒが子供を修正されている場合、たとえば、データをすべての子コントロールを気力するdata.Theの手順は、次のようにしている制御WICH:制御を示す

ファースト(ParentControl )。

  • をPage_Load() - 私は、削除をクリックすると>データに

を気力:

  • をPage_Load() - > * /データ   を気力、これを起動しないしたくありませんここに! */

  • イベントは削除 - >データ私はAsyncPostbacksにprogramatical違いを生む、としたとき気力データを起動しないようにをPage_Load()関数で使用する必要があります

     ->fullfill data again! 
    

を変更しますイベントを実行したいだけです。あなたはIsAsyncPostbackを使用することができますUpdatePanelの外

IsCallBackIsPostBackプロパティ私は確かにこのことを知っているが、これらのpropertysはAsyncPostbackに変更しないでください。

私は2つのAsycPostbacksを持っており、それらを区別する必要があります。
1.まずデータを表示して初期化します。
2.イベントを実行し、制御

に変更を加える誰かが実装するためのテクニックを知って持っている、またはフレームワークウィッヒのいくつかの並べ替えは、この種の機能を持っていますか?

誰でもこの問題がありますか? :(

答えて

1

私は他の回答を削除しました。最初のものとはまったく異なる問題を説明しています。前のバージョンの担当者を維持しながら、私の回答を完全に置き換えるのは愚かなようでした。

非同期コールバックの原因となったイベントを確認するか、変更された内容を解決するために各更新パネルのコントロールの値を確認する必要があります。

これは私がアップデートパネルを使用しないことに決めた重要な理由の1つであり、非同期ポストバックはほとんど全てのページライフサイクルイベントを引き起こし、複雑な状況で何が起こっているのかを実際に見るのは非常に難しいこのように、私が怒って更新パネルを使用した唯一の時間は、大規模なデータセットを扱うときにページ全体のリロードを保存するためにデータグリッドをラップする私の個人的なサイト上でした。


編集追加する:要求を開始した制御

:ちょうど支援しようと

、簡単にGoogleはthis (AJAX and the ASP.NET 2.0 Callback Framework)を上げ?

ポストバック要求では、ScriptManager idがパラメータとして動作します。一般的に、値は部分的なポストバックを開始したコントロールのIDです。これは|形式です。コントロールはScriptManagerに直接登録することも、UpdatePanelを介して登録することもできます。 ScriptManager.AsyncPostBackSourceElementIDプロパティは、部分的なポストバックを開始したコントロールのIDを返します。

構文の例:

ScriptManager1=UpdatePanel1|Button1 

ページには、プロセスにいくつかのライフサイクルに関する詳細、および様々なフックに行くこと。

+0

これは本当にうまくいっています。ScriptManager.AsyncPostBackSourceElementIDプロパティはUniqueIDを返しています。FindControlを使用して、asyncpostbackがトリガーされた場所を把握することができます。 –

+1

Huzzah!喜んで助けてください。 –