2012-06-21 61 views
0

我有一個帶有TabContainer的UpdatePanel。每個TabPanel都有一個GridView(代碼不包含,因爲它不重要),我想在每個TabPanel中有一個不同的UpdateProgress控件。請看我的代碼,下面是我想要做的一個例子。多個UpdateProgress控件在TabContainer中,鏈接到一個UpdatePanel

我知道標準的方法是在UpdatePanel之外找到UpdateProgress控件,但我希望它/它們位於UpdatePanel和TabContainer內部,因爲我希望「正在加載...」消息正好顯示在每個GridViews的頂部。目前,UpdateProgress控件在第一個TabPanel上工作(如下面的代碼所示),但不在第二個或任何後續的TabPanel上。

<asp:UpdatePanel ID="updTest" runat="server"> 
<ContentTemplate> 
    <ajax:TabContainer ID="conTest" runat="server"> 
     <ajax:TabPanel ID="pnlTest1" runat="server"> 
      <!--This UpdateProgress Control Does work--> 
      <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="updTest"> 
       <ProgressTemplate> 
        Loading, please wait.... 
       </ProgressTemplate> 
      </asp:UpdateProgress> 
     </ajax:TabPanel> 
     <ajax:TabPanel ID="pnlTest1" runat="server"> 
      <!--This UpdateProgress Control Doesn't work. How can I fix it?--> 
      <asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="updTest"> 
       <ProgressTemplate> 
        Loading, please wait.... 
       </ProgressTemplate> 
      </asp:UpdateProgress> 
     </ajax:TabPanel> 
    </ajax:TabContainer> 
</ContentTemplate> 

我打開另一種方法,如果我試圖做到這一點的方法是不是最好的方式。感謝您的任何想法。

回答

1

你可以做什麼仍然只有一個updateprogress,但在你的內部放置一個updatepanel來改變你的updateProgress顯示的內容。

像這樣

<asp:UpdateProgress ID="UpdateProgress1" runat="server" DynamicLayout="true"> 
<ProgressTemplate> 
    <asp:UpdatePanel ID="up1" runat="server" > 
     <ContentTemplate> 
     <!-- put a label of something in here --> 

     </ContentTemplate> 
    </asp:UpdatePanel> 
</ProgressTemplate> 
</asp:UpdateProgress> 

希望這是有道理的,我不解釋,有時最好的。

相關問題