在表单中将asp UpdatePanel控件准确放在哪里?

时间:2017-04-04 21:54:07

标签: asp.net ajax webforms updatepanel

我是ASP.NET的新手。我有以下代码,但我不知道在哪里放置asp:UpdatePanel控件,它的contenttemplate和(如果需要)它的触发器,所以我可以在没有回发的情况下进行验证?

 <form method="post" id="formLogin" runat="server">
    <asp:ScriptManager runat="server">
        <Scripts>
            // bunch of scriptreferences
        </Scripts>
    </asp:ScriptManager>

                <p>
                    <asp:Label ID="lblEmail" runat="server" Text="Email:"/><br/>
                    <asp:TextBox ID="txtEmail" runat="server"/>
                </p>
                <p>
                    <asp:Label ID="lblPassword" runat="server" Text="Password:"/><br/>
                    <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"/>
                </p>

        <div id="msg" runat="server" class="item">

                    <asp:Label ID="lblMessage" runat="server" ForeColor="Red" />
                </div>

                <div class="loginbutton">
                    <p>
                        <a href="#" class="forgot">Forgot Password?</a><br />
                        <a href="../EN/form_1.aspx" class="forgot">New user?</a>
                    </p>
                    <input type="reset" name="login" value="Cancel" id="cancel" />

                    <asp:Button ID="btnLogin" runat="server" Text="Login" OnClick="btnLogin_Click" />
                </div>
    </form>

lblMessage显示为&#34;您输入了错误的电子邮件/密码&#34;如果凭据与数据库记录不匹配。

1 个答案:

答案 0 :(得分:0)

系统强制要求:

它不应出现在页面的<asp:ScriptManager>标记之前。

您的需求:

在触发特定事件时,您只想更新的所有部分都应放在<ContentTemplate>的{​​{1}}标记内。

以下示例:

UpdatePanel

对于你的问题:

<div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:Label ID="lblDontUpdateMe" runat="server" />
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Label ID="lblUpdateMe" runat="server" />
            <asp:Button ID="btnUpdate" runat="server" Text="Update" />
        </ContentTemplate>
    </asp:UpdatePanel>
</div>