如何在后面的c#代码中将div添加到容器div

Posted

技术标签:

【中文标题】如何在后面的c#代码中将div添加到容器div【英文标题】:how to add a div to container div in c# code behind 【发布时间】:2010-11-13 00:36:46 【问题描述】:

ASP.NET、C#

正如标题所示,我想知道是否有人知道如何以编程方式(c# 代码隐藏文件)将 div 添加到另一个容器 div(在 aspx 页面中)。

提前致谢

【问题讨论】:

【参考方案1】:

//创建新的div实例并设置所有值,如ID 查看简短的代码示例。在网络添加中创建 Div 对我有用

System.Web.UI.htmlControls.HtmlGenericControl NewDiv = new 
    System.Web.UI.HtmlControls.HtmlGenericControl();
    NewDiv.ID = "divcreated";

protected void Page_Load(object sender, EventArgs e)

    System.Web.UI.HtmlControls.HtmlGenericControl createDiv =
    new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");      
    createDiv.ID = "createDiv";
    createDiv.Style.Add(HtmlTextWriterStyle.BackgroundColor, "Yellow");
    createDiv.Style.Add(HtmlTextWriterStyle.Color, "Red");
    createDiv.Style.Add(HtmlTextWriterStyle.Height, "100px");
    createDiv.Style.Add(HtmlTextWriterStyle.Width, "400px");
    createDiv.InnerHtml = " I'm a div, from code behind ";
    this.Controls.Add(createDiv);

【讨论】:

为我工作的 SharePoint:createDiv.Attributes.Add("id", "createDiv"); 非常有用的答案谢谢,只是,你如何将它添加到另一个div?这是问题的一部分。【参考方案2】:
Panel myChildPanel = new Panel();
myContainerPanel.Controls.Add(myChildPanel);

【讨论】:

【参考方案3】:

除了使用 ocdecio 建议的面板之外,还有其他几种可能性。

您可以在 div 中使用 asp:Literal 控件并使用预生成的 HTML 填充它 将 runat="server" 添加到 div 本身并将其作为 HtmlGenericControl 访问,从您的代码隐藏中添加其他控件。 使用

这在一定程度上取决于您需要的控制水平。不过,在大多数情况下,最好是一开始不可见的面板:

<div>    
<asp:Panel Visible="false" id="MyPanel" runat="server">
</asp:Panel>
</div>

然后在需要时更改代码隐藏的可见性。

当您遇到一些基于 ID 分配样式的 CSS 文件时,您可能想要使用其他方法之一。在这种情况下,使用 .NET 控件并不是一个真正的选择。但实际上,你应该打你的设计师的脑袋,告诉他改用类名。

【讨论】:

Panel vs. Literal vs. div with runat="server" 的优缺点是什么?【参考方案4】:

使用 asp:Panel,它映射到一个 div。

【讨论】:

【参考方案5】:

这可能是一个非常古老的问题,但我想添加我的解决方案以提供帮助:

首先,对于页面中已有的“div”(您想要添加另一个“div”的那个),提供 runat="server" 属性,以便您可以从后面的代码中访问它,它看起来像这个:

<div id="superDIV" class="someCssClass" runat="server"></div>

然后在您的 Page_Load() 方法中添加以下内容:

protected void Page_Load(object sender, EventArgs e)

   //We create our new div
   System.Web.UI.HtmlControls.HtmlGenericControl newDiv = 
     new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
   newDiv.ID = "newSuperDIV"; //<---Give and ID to the div, very important!
   newDiv.Style.Value = "background-color:white; height:61%;"; //<---Add some style as example
   newDiv.Attributes.Add("class", "amazingCssClass"); //<---Apply a css class if wanted
   superDiv.Controls.Add(newDiv); //<---Add the new div to our already existing div

直接在 Page_Load 函数中生成您的 div,这样它将确保在任何回发之后存在,避免在 (!IsPostBack) 等代码块中生成它,否则它不会存在于您的页面中。

【讨论】:

以上是关于如何在后面的c#代码中将div添加到容器div的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CSS 在动态大小的容器中将动态大小的 div 居中?

如何在python中将标题添加到散景仪表板?

如何将类添加到已经在 jQuery 中调用容器 div 的附加变量

如何将`google map`直接加载到`div`到容器中?

试图设置背景图片,但 div id 名称没有显示在后面的代码中,我做错了啥?

jQuery:如何让 div 扩展到一个高度并添加文本?