hacer - cómo agregar un div al contenedor div en c#código detrás
mod en dev c++ (5)
// crear una nueva instancia de div y establecer todos los valores como el ID Echa un vistazo al ejemplo de código corto. Me funcionó crear Divs en un web add.
System.Web.UI.HtmlControls.HtmlGenericControl NewDiv = new
System.Web.UI.HtmlControls.HtmlGenericControl();
NewDiv.ID = "divcreated";
o
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);
}
ASP.NET, C #
Como sugiere el título, me preguntaba si alguien sabía cómo programar (c # code behind file) agregar un div a otro un contenedor container (en la página aspx).
Gracias por adelantado
Aparte de usar un Panel como el ocdecio sugerido, hay varias otras posibilidades.
- Puedes usar un asp: Control literal dentro del div y rellenar con HTML pregenerado
- Agregue un runat = "server" al div en sí y acceda a él como HtmlGenericControl, agregando otros controles desde su código de código.
- Utilizando <% = ...%>
Depende un poco del nivel de control que necesites. Aún así, en la mayoría de los casos, un Panel que comienza invisible debería ser el mejor:
<div>
<asp:Panel Visible="false" id="MyPanel" runat="server">
</asp:Panel>
</div>
Luego cambie la visibilidad desde su código de código cuando sea necesario.
Uno de los casos en los que es posible que desee utilizar uno de los otros métodos es cuando está atascado con algún archivo CSS que asigna estilos basados en ID. En ese caso, el uso de controles .NET no es realmente una opción. Pero realmente, deberías darle una bofetada a tu diseñador y decirle que use nombres de clase en su lugar.
Esta puede ser una pregunta muy antigua, pero me gustaría agregar mi solución para ayudar:
Primero, para la "div" que ya tienes en tu página (a la que quieres agregar otra "div"), dale la propiedad runat = "server" para que puedas acceder a ella desde el código que está detrás, se vería así:
<div id="superDIV" class="someCssClass" runat="server"></div>
Luego, en su método Page_Load () agregue lo siguiente:
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
}
Genearte tu div directamente dentro de la función Page_Load para que asegure que exista después de cualquier devolución, evita generarla dentro de bloques de código como (! IsPostBack) {} de lo contrario no existirá en tu página.
Use asp: Panel, que se asigna a un div.
Panel myChildPanel = new Panel();
myContainerPanel.Controls.Add(myChildPanel);