需要一些帮助来理解asp:UpdatePanel的工作原理

时间:2015-11-07 15:10:16

标签: asp.net

我遇到了这个问题,我无法真正理解究竟发生了什么。 所以我有我的Default.aspx页面,我注册了2个UserControls,即logctrl和valctrl。从logctrl我想在按下特定按钮时更新valctrl中的textarea。一切正常,直到我介绍一个asp:UpdatePanel来显示加载模式。 由于某种原因,在我点击logctrl中的相同按钮后,没有填充textarea。

Default.aspx的

<asp:Panel ID="Panel1" runat="server" Height="380px" CssClass="background1">    
        <div class="content-wrapper">
            <uc2:logctrl id="CtrlLog" runat="server"></uc2:logCtrl>
            <uc1:valctrl id="CtrlVal" runat="server"></uc1:valCtrl>
        </div>        
</asp:Panel>

logctrl.ascx

<asp:UpdatePanel ID="Panel1" runat="server">
    <ContentTemplate>
        <asp:Button ID="logonButton" runat="server" Text="Logon" OnClick="logonButton_Click" />
    </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress id="updateProgress" runat="server">
        <ProgressTemplate>
            <div style="position: fixed; text-align: center; height: 100%; width: 100%; top: 0; right: 0; left: 0; z-index: 9999999; background-color: #000000; opacity: 0.7;">
                <asp:Image ID="imgUpdateProgress" runat="server" ImageUrl="~/Images/loading.gif" AlternateText="Loading ..." ToolTip="Loading ..." style="padding: 10px;position:fixed;top:45%;left:50%;" />
            </div>
            <div style="position: fixed; text-align: center; height: 100%; width: 100%; top: 0; right: 0; left: 0; z-index: 9999999; background-color: #000000; opacity: 0.7;">
                <span style="border-width: 0px; position: fixed; padding: 50px; background-color: #FFFFFF; font-size: 36px; left: 40%; top: 40%;">Loading ...</span>
            </div>            
        </ProgressTemplate>
</asp:UpdateProgress> 

1 个答案:

答案 0 :(得分:0)

您必须向更新面板添加触发器,以便让它知道某些内容已更改。您必须告诉该控件的哪个控件和哪个事件触发更新。或者您可以将更新面板的更新模式属性设置为&#34;始终&#34;。在设计器视图中单击更新面板的属性添加触发器