asp.net-加载事件后,我可以在C#中的div标签内动态添加HTML吗?

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

Sara Chipps asked 2020-07-06T06:44:29Z
5个解决方案
81 votes

您可以将带有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>
M4N answered 2020-07-06T06:44:54Z
15 votes

为此使用asp:Panel。 它转换为div。

Otávio Décio answered 2020-07-06T06:45:14Z
5 votes

记住使用

myDiv.InnerHtml = "something";

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

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

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

Vivek Raj answered 2020-07-06T06:45:42Z
3 votes

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

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控件。

splattne answered 2020-07-06T06:46:07Z
1 votes

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

我不会通过FindControl搜索该控件,因为这是一个脆弱的解决方案,如果更改控件名称,则很容易将其破坏。

最好的选择是在母版页中声明一个任何子页都可以处理的事件。 该事件可以将HTML作为EventArg传递。

Jim Petkus answered 2020-07-06T06:46:36Z
translate from https://stackoverflow.com:/questions/467016/can-i-dynamically-add-html-within-a-div-tag-from-c-sharp-on-load-event