2012-06-21 33 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> 

希望这是有道理的,我不解释,有时最好的。

相关问题