Подтвердить что ты не робот

Как добавить div в контейнер div в С# код позади

ASP.NET, С#

Как видно из названия, мне было интересно, если кто-нибудь знает, как запрограммировать (С# код за файлом) добавить div в другой контейнер div (на странице aspx).

Заранее спасибо

4b9b3361

Ответ 1

//создаем новый экземпляр div и устанавливаем все значения, такие как идентификатор Проверьте пример короткого кода. Он работал у меня, чтобы создать 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);
}

Ответ 2

Panel myChildPanel = new Panel();
myContainerPanel.Controls.Add(myChildPanel);

Ответ 3

Помимо использования панели, такой как ocdecio, существует несколько других возможностей.

  • Вы можете использовать элемент управления asp: Literal внутри div и заполнить его с помощью предварительно созданного HTML
  • Добавьте runat = "server" к самому div и получите к нему доступ как HtmlGenericControl, добавив к нему другие элементы управления из вашего кода.
  • Использование <% =...% >

Это немного зависит от уровня контроля, который вам нужен. Тем не менее, в большинстве случаев лучше всего использовать панель, которая начинает невидимую:

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

Затем измените видимость с вашего кода при необходимости.

В одном случае, когда вы можете использовать один из других методов, вы застряли в каком-то файле CSS, который присваивает стили на основе идентификатора. В этом случае использование элементов управления .NET на самом деле не является вариантом. Но на самом деле, вы должны ударить своего дизайнера над головой и попросить вместо него использовать имена классов.

Ответ 4

Используйте asp: Панель, которая отображается в 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
}

Генерируйте свой div непосредственно внутри функции Page_Load, чтобы гарантировать, что существует после любой обратной передачи, не генерировать ее внутри кодовых блоков, например (! IsPostBack) {}, иначе не будет на вашей странице.