2011-03-28 26 views
6

¿Hay alguna manera de hacer un servidor div runat? ¿Entonces puedo convertirlo en un control? En asp.net?¿Hay alguna manera de hacer un servidor div runat? ¿Entonces puedo convertirlo en un control?

EDIT:

Si es así, ¿cómo puedo decirle a mi código de abajo para hacer div id = servidor runat prueba?

  while (reader.Read()) 
      { 
       System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div"); 
       div.Attributes["class"] = "test"; 
     //div.Style["float"] = "left"; 

       div.ID = "test"; 
       Image img = new Image(); 
       img.ImageUrl = String.Format("{0}", reader.GetString(1)); 
       // this line needs to be represented in sql syntax 
       //img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg"; 
       img.AlternateText = "Test image"; 

       div.Controls.Add(img); 
       div.Controls.Add(ParseControl(String.Format("&nbsp&nbsp "+"{0}", reader.GetString(0)))); 
       div.Style["clear"] = "both"; 
       test1.Controls.Add(div); 

      } 

Respuesta

19

<div runat="server"></div> 

lo convertirá en un control del lado del servidor. Se pueden generar en el código detrás de la utilización

var myDiv = new HtmlGenericControl("div"); 

Editar: ¿Qué se está generando es un control del lado del servidor, no hay necesidad de añadir runat="server".

Editar por comentario:

<div onclick="alert('hello')" runat="server"></div> 

o

var myDiv = new HtmlGenericControl("div"); 
myDiv.Attributes.Add("onclick", "alert('hello');"); 
+0

Vine aquí buscando usar el div con runat = server, pero terminé usando span con runat = server para no tener un descanso entre las cosas en mi contenedor y algún texto sobre mi control. Esto me ayudó a llegar a esa solución, así que muchas gracias. – Eden

14

Usted puede hacer un div runat = "server", darle un id y la referencia que desde C# si eso es lo que está buscando. Sin embargo, ¿por qué no usar un asp: Panel, que hacen el mismo trabajo esencial y el panel presente un div a cabo en la mayoría de escenarios

+3

Mientras que un asp: Panel hace crear un div en la mayoría de los navegadores no se garantiza a hacerlo en todos los navegadores. Depende de la configuración dentro del elemento browserCaps en web.config o machine.config. – jColeson

+0

O posiblemente un archivo de navegador. –

+1

Olvidé que browserCaps se desaprobó después de 2.0 y se reemplazó con archivos de definición de navegador (* .browser). La misma advertencia todavía se aplica a ellos sin embargo. – jColeson

9

asp: Panel es un DIV cuando se rindió

-1

que es, sin duda no ser la solución más elegante, pero la adición de un control literal y construir su div de código hará el truco.

-1

código ASPX

<div id="alert" runat="server" style="float: left"> 

</div> 

código C#

alert.InnerHtml= ANY HTML CODE ; 
Cuestiones relacionadas