2010-11-23 15 views
1

私は入れ子の子と親UpdatePanelを持っています。問題は、子のUpdatePanelがリフレッシュ/ポストされると、親のUpdateProgressが起動することです。どうすればこれを防ぐことができますか?構造は次のようである:子UpdatePanelと親UpdateProgressの問題

UpdatePanel2が掲載されて
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
      <ContentTemplate> 

     <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1"> 
        <ProgressTemplate></ProgressTemplate> 
     </asp:UpdateProgress> 

     <asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="UpdatePanel1"> 
        <ProgressTemplate></ProgressTemplate> 
     </asp:UpdateProgress> 

     <asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional"> 
      <ContentTemplate> 
       <asp:UpdateProgress ID="UpdateProgress3" runat="server" AssociatedUpdatePanelID="UpdatePanel2"> 
            <ProgressTemplate></ProgressTemplate> 
           </asp:UpdateProgress> 
      </ContentTemplate> 
       </asp:UpdatePanel> 

     </ContentTemplate> 
</asp:UpdatePanel> 

UpdateProgress3が表示されていないが、UpdateProgress1UpdateProgress2です。私は何をすべきか? UpdatePanel1

答えて

1

UpdateModeプロパティが指定されていない場合、ページ上の他UpdatePanelが部分ポストバックを行う際UpdatePanel1がリフレッシュされますを意味し、Alwaysデフォルトそれはそう。

は、すべてのUpdatePanelsUpdateMode="Conditional"を指定してみてください:

ここで見
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
</asp:UpdatePanel> 
+0

UpdatePanel1にUpdateMode = "Conditional"を追加しましたが、UpdateProgress1と2は同じですが、3ではなく表示されます。 – dstr

1

http://www.asp.net/AJAX/Documentation/Live/overview/UpdateProgressOverview.aspx

UpdatePanelコントロールが別の更新パネルの内側にある場合は、子パネルの内側に発信ポストバックがどんなのUpdateProgressを引き起こし表示される子パネルに関連付けられたコントロール。 親パネルに関連付けられたUpdateProgressコントロールも表示されます。ポストバックが親パネルの直下の子コントロールから発生した場合、親パネルに関連付けられたUpdateProgressコントロールのみが表示されます。これは、ポストバックがトリガされる方法のロジックに従います。

だから、私はあなたが親のUpdateProgressクライアント側を非表示にする必要がありますと思う:

UpdateProgressコントロールはJavaScript BeginRequestイベントとPageRequestManagerクラスのEndRequestのイベントを使用して表示されているときは、プログラムで制御することができます。 beginRequestイベントハンドラで、UpdateProgressコントロールを表すDOM要素を表示します。 endRequestイベントハンドラで、要素を非表示にします。

関連する問題