从aspx.cs向aspx页面添加新的LiteralControl

时间:2014-03-07 10:13:40

标签: c# asp.net webforms literals

所以基本上我通过后端的litterals将元素添加到我的html中。 在asp内容占位符中使用它时效果很好。但我需要它成为特定页面上的另一个特定位置。我尝试使用runat =“server”制作div,但它似乎不起作用。有没有人对我能使用的东西有任何经验?这是我的代码的一部分:

foreach (var something in somethingelse)
{
    this.Page.Form.FindControl("ContentPlaceholder1")
        .Controls.Add(
         new LiteralControl("It's a long list, so just typing this.")
    );
}

2 个答案:

答案 0 :(得分:0)

您可以在div上使用runat =“server”。例如:

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

并在后面的代码中:

myNewDiv.InnerHtml = "Some new text in the div";

如果您需要动态创建div,可以执行以下操作:

        for (var i = 0; i < 10; i++)
        {
            var ele = new HtmlGenericControl("div")
            {
                InnerHtml = string.Format("new div {0}", i), 
                ID = string.Format("NewDiv_{0}", i)
            };

            Page.Form.FindControl("MainContent").Controls.Add(ele);
        }

你甚至可以将新的div推送到ContentPlaceHolder中任何位置的现有div:

        var page = Page.Form.FindControl("MainContent").FindControl("myNewDiv").Controls;
        for (var i = 0; i < 10; i++)
        {
            var ele = new HtmlGenericControl("div")
            {
                InnerHtml = string.Format("new div {0}", i), 
                ID = string.Format("NewDiv_{0}", i)
            };

            page.Add(ele);
        }

答案 1 :(得分:0)

在源代码中放置HTML标记,如下所示

<table>
<tbody>
<-- Your literal control here -->
</tbody>
</table>

并在set literal1.Text ="<tr><td>'"+ Your data here +"'</td></tr>"后面的代码中,它将起作用