TabContainer中的多个UpdateProgress控件,链接到单个UpdatePanel

时间:2012-06-21 14:57:58

标签: javascript asp.net .net ajax

我有一个带有TabContainer的UpdatePanel。每个TabPanel都有一个Gridview(代码不包括,因为它并不重要),我想在每个TabPanel中有一个不同的UpdateProgress控件。请参阅下面的代码,了解我正在尝试做的事情。

我知道标准方法是在UpdatePanel之外找到UpdateProgress控件,但是我希望它/它们位于UpdatePanel和TabContainer中,因为我希望“Loading ...”消息显示在顶部我的每个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 个答案:

答案 0 :(得分:1)

你可以做的仍然只有一个updateprogress,但在你的put一个更新面板里面改变你的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>

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