如何使用页面加载后面的代码将html代码部分插入特定位置

时间:2012-04-09 15:19:33

标签: c# asp.net html code-behind codeblocks

我有一个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>

这个代码块应该在删除一些条件之后添加到页面中......并且该部分和其他一些函数在代码中实现behide function page_load()

如何仅使用page_load()函数中的代码后面而不将其内联在aspx文件中?

3 个答案:

答案 0 :(得分:9)

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

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

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

divErrorMessage.InnerHtml = "Your message";

设置标志,runat =“server”使控件在

后面的代码中可用

答案 1 :(得分: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控件,并在其Text属性中添加HTML,然后将此文字控件添加到当前aspx页面的controls集合中。

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

但是在后面的代码中直接执行此操作并非最佳做法,您可以更好地使用资源文件。

答案 2 :(得分: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;