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

发布于 2024-07-12 09:58:46 字数 59 浏览 4 评论 0原文

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

Mind you, I am using master pages, but can I locate a div within the page and throw some html in there? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

醉梦枕江山 2024-07-19 09:58:46

您可以将 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>

You can add a div with runat="server" to the page:

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

and then set its InnerHtml property from the code-behind:

myDiv.InnerHtml = "your html here";

If you want to modify the DIV's contents on the client side, then you can use javascript code similar to this:

<script type="text/javascript">
    Sys.Application.add_load(MyLoad);
    function MyLoad(sender) {
        $get('<%= div.ClientID %>').innerHTML += " - text added on client";
    }
</script>
抚你发端 2024-07-19 09:58:46

为此,请使用 asp:Panel。 它翻译成一个div。

Use asp:Panel for that. It translates into a div.

梦言归人 2024-07-19 09:58:46

请记住使用

myDiv.InnerHtml = "something";

将替换 myDIV 中的所有 HTML 元素。 您需要附加文本以避免这种情况。这可能对

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

myDiv 中的任何 html 控件有帮助,但对 ASP html 控件没有帮助(因为它们尚未呈现)。

Remember using

myDiv.InnerHtml = "something";

will replace all HTML elements in myDIV. you need to append text to avoid that.In that this may help

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

any html control in myDiv but not ASP html controls(as they are not rendered yet).

寂寞陪衬 2024-07-19 09:58:46

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

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>";
        }
    }

}

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

You could reference controls inside the master page this way:

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>";
        }
    }

}

In this example you have to put a Literal control in your ContentPlaceholder.

画尸师 2024-07-19 09:58:46

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

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

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

You want to put code in the master page code behind that inserts HTML into the contents of a page that is using that master page?

I would not search for the control via FindControl as this is a fragile solution that could easily be broken if the name of the control changed.

Your best bet is to declare an event in the master page that any child page could handle. The event could pass the HTML as an EventArg.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文