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

Multiple UpdateProgress Controls In TabContainer, Linked To Single UpdatePanel

本文关键字:链接 单个 UpdatePanel 控件 UpdateProgress TabContainer      更新时间:2023-09-26

我有一个UpdatePanel,里面有一个TabContainer。 每个 TabPanel 中都有一个网格视图(代码不包括在内,因为它并不重要),我希望在每个 TabPanel 中都有一个不同的 UpdateProgress 控件。请参阅下面的代码,了解我正在尝试执行的操作的示例。

我知道标准方法是在 UpdatePanel 之外找到 UpdateProgress 控件,但我希望它/它们位于 UpdatePanel 和 TabContainer 中,因为我想要"正在加载..."消息将显示在我的每个网格视图的正上方。目前,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>

如果我试图实现这一目标的方式不是最好的方法,我愿意接受另一种方法。感谢您的任何想法。

您仍然可以做的仍然只有一个更新进度,但是在您的内部放置一个更新面板来更改更新进度显示的内容。

像这样的东西

<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>

希望这是有道理的,我有时不擅长解释。