2009-07-22 22 views

Respuesta

4

Uso asp: Panel, que se asigna a un div.

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

Además del uso de un panel como se sugiere ocdecio, hay muchas otras posibilidades.

  • Puede utilizar un asp: control literal en el interior del div y llenar que con HTML pregenerated
  • Añadir un runat = "servidor" a la misma y acceder a ella como una HtmlGenericControl div, la adición de otros controles a la misma desde su código detrás.
  • Usando <% = ...%>

Depende un poco en el nivel de control que desee. Sin embargo, en virtud de una mayoría de las circunstancias, un panel que comienza invisible sería mejor:

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

a continuación, cambiar la visibilidad de su código subyacente cuando sea necesario.

Uno de los casos en los que es posible que desee utilizar uno de los otros métodos es cuando se queda atrapado con algún archivo CSS que asigna estilos basados ​​en ID. En ese caso, usar controles .NET no es realmente una opción. Pero en realidad, deberías golpear a tu diseñador en la cabeza y decirle que use nombres de clase en su lugar.

25

// crea una nueva instancia de div y configura todos los valores como el ID Echa un vistazo al ejemplo de código corto. Funcionó para mí para crear Div en una web Añadir

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); 
} 
+0

for SharePoint for me funcionó: createDiv.Attributes.Add ("id", "createDiv"); –

+0

Respuesta muy útil gracias, solo, ¿cómo lo agregas a otro div? eso es parte de la pregunta. – JCO9

0

Esto puede ser una pregunta muy antigua, pero me gustaría añadir mi solución para ayudar:

En primer lugar, al "div" que ya tiene en su página (al que desea agregar otro "div") le da la propiedad runat = "server" para que pueda acceder desde el código, se vería así:

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

Entonces método en su Load(), agregue el 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 su div directamente dentro de la función Load por lo que se asegurará de que existe después de cualquier devolución de datos, evitar que se genere dentro de los bloques de código como (! IsPostBack) {} de lo contrario no existirá en su página.

Cuestiones relacionadas