我可以在加载事件的C#中的div标签中动态添加HTML吗?

时间:2009-01-21 21:10:54

标签: c# asp.net .net-3.5 master-pages

请注意,我正在使用母版页,但是我可以在页面中找到div并在那里放一些html吗?谢谢。

5 个答案:

答案 0 :(得分:80)

您可以在页面中添加一个带有runat =“server”的div:

<div runat="server" id="myDiv">
</div>

然后从代码隐藏中设置其InnerHtml属性:

myDiv.InnerHtml = "your html here";

如果你想在客户端修改DIV的内容,那么你可以使用类似这样的javascript代码:

<script type="text/javascript">
    Sys.Application.add_load(MyLoad);
    function MyLoad(sender) {
        $get('<%= div.ClientID %>').innerHTML += " - text added on client";
    }
</script>

答案 1 :(得分:15)

使用asp:Panel。它转化为div。

答案 2 :(得分:5)

请记住使用

myDiv.InnerHtml = "something";

将替换myDIV中的所有HTML元素。你需要附加文字以避免这种情况。这可能会有所帮助

myDiv.InnerHtml = "something" + myDiv.InnerText;

myDiv中的任何html控件,但不是ASP html控件(因为它们尚未呈现)。

答案 3 :(得分:3)

您可以通过以下方式引用母版页内的控件:

void Page_Load()
{
    ContentPlaceHolder cph;
    Literal lit;

    cph = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");

    if (cph != null) {
        lit = (Literal) cph.FindControl("Literal1");
        if (lit != null) {
            lit.Text = "Some <b>HTML</b>";
        }
    }

}

在此示例中,您必须在ContentPlaceholder中放置Literal控件。

答案 4 :(得分:1)

您想将代码放在主页面代码后面,将HTML插入到使用该母版页的页面内容中吗?

我不会通过FindControl搜索控件,因为这是一个脆弱的解决方案,如果控件名称发生变化,很容易被破坏。

最好的办法是在母版页中声明任何子页面可以处理的事件。该事件可以将HTML作为EventArg传递。