簡體   English   中英

如何在c#代碼后面添加div到容器div

[英]how to add a div to container div in c# code behind

ASP.NET,C#

正如標題所示,我想知道是否有人知道如何以編程方式(文件后面的c#代碼)將div添加到另一個容器div(在aspx頁面中)。

提前致謝

//創建div的新實例並設置所有值,如ID,查看短代碼示例。 我在網絡添加中創建了Divs

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);
}
Panel myChildPanel = new Panel();
myContainerPanel.Controls.Add(myChildPanel);

除了使用像ocdecio建議的Panel之外,還有其他幾種可能性。

  • 您可以在div中使用asp:Literal控件,並使用預生成的HTML填充它
  • 將一個runat =“server”添加到div本身並將其作為HtmlGenericControl訪問,從代碼隱藏中添加其他控件。
  • 使用<%= ...%>

這取決於您需要的控制水平。 盡管如此,在大多數情況下,開始隱形的小組最好:

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

然后在需要時更改代碼隱藏的可見性。

您可能想要使用其他方法之一的情況是,當您遇到一些基於ID分配樣式的CSS文件時。 在這種情況下,使用.NET控件並不是一個真正的選擇。 但實際上,你應該嘲笑你的設計師,並告訴他使用類名。

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

這可能是一個非常古老的問題,但我想添加我的解決方案來幫助:

首先,對於您已經在頁面中的“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){}否則它不會存在於你的頁面中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM