5

我有一个 aspx 页面,我需要在其中检查并在page_load. 错误信息如下:

<div class="errorMessage">The user ID or password you entered does not match our records. Please try again. <br /> 
        You may also securely recover your <a href="#">User ID</a> or reset your <a href="#">Password</a> online. 
    </div>

在检查某些条件后,应将此代码块添加到页面中......并且该部分和其他一些功能在代码隐藏功能中实现page_load()

我如何只使用page_load()函数中的代码而不将其内联在 aspx 文件中来执行此操作?

4

3 回答 3

9

创建一个带有 ID 和 runat="server" 的 div:

<div ID="divErrorMessage" runat="server" class="divErrorMessage"></div>

然后从后面代码中的 Page_Load 事件中,您可以设置 div 的内部 html:

divErrorMessage.InnerHtml = "Your message";

设置标志,runat="server" 使控件在后面的代码中可用

于 2012-04-09T15:29:04.617 回答
4

您可以在 page_load 中添加如下代码

protected void Page_Load(object sender, EventArgs e)
{

    Literal lit=new Literal();
    lit.Text = @"<div class='errorMessage'>The user ID or password you entered does not match our records. Please try again. <br /> 
                            You may also securely recover your <a href='#'>User ID</a> or reset your <a href='#'>Password</a> online. 
                        </div>";
    Page.Controls.AddAt(0,lit);

}

在此示例中,我们创建了一个新的 Literal 控件并将您的 HTML 添加到它的 Text 属性中,然后将此文本控件添加到当前 aspx 页面的控件集合中。

您可以通过 CSS 样式更改此 div 的位置,也可以将其添加到任何现有 Panel 中,而不是将其直接添加到“Page.Controls”对象,例如您可以将其添加到“Panel1.Controls”。

但是直接在后面的代码中这样做并不是最佳实践,您可以更好地使用资源文件。

于 2012-04-09T15:36:54.043 回答
0

有很多方法可以做到这一点,这是一种。将您的 div 包装在一个 asp 面板控件中。

<asp:Panel runat="server" ID="pnlErrorMessage">
    <div class="errorMessage">The user ID or password you entered does not match our records. Please try again. <br /> 
    You may also securely recover your <a href="#">User ID</a> or reset your <a href="#">Password</a> online. 
    </div>
</asp:Panel>

在您的 page_load 中:

pnlErrorMessage.Visible = true;

于 2012-04-09T15:29:24.990 回答