Pregunta

Cuando no necesitas usar runat="server" en ASP.NET?

Editar: Gracias por todas las respuestas, pero realmente estaba pensando en runat="server" dentro de un <asp: etiqueta.

¿Fue útil?

Solución

Utilizar el runat=server Atributo Cuando usa los controles ASP.NET, y/o necesita acceso programático a esos controles en su código-detención.

Los controles HTML no requieren este atributo. Es útil si tienes algún elemento HTML como <span> <div>, o <table> Cuando desee la capacidad de acceder a ellos en código detallado.

<asp:Label runat="server" id="foo" />
<div runat="server" id="bar />
...
foo.Text = "Hello Label";
foo.Attributes["class"] = "baz";

Otros consejos

Necesitas usar runat="server" en cualquier control que desee ser analizado como control de servidor.

Cualquier elemento con runat="server" se analizará en un control de servidor en la herarquía de la página. Cualquier otra cosa se manejará como texto sin formato y se pondrá LiteralControl Controles en la jerarquía de la página.

La excepción son elementos que no son elementos reales, sino etiquetas especiales dentro de otra etiqueta de servidor, por ejemplo ContentTemplate Etiquetas. Ellos no necesitan un runat="server" Porque el control que contiene los analizará.

Cuando no desea que el lado del servidor ASP.NET represente una variable del lado del servidor contra nosotros.

En términos generales, no lo usa cuando no necesita manipular el elemento DOM en el lado del servidor, por ejemplo, que solo se usan para fines de diseño.

Sin runat = "servidor" tampoco habría otra forma de realizar controles HTML del lado del servidor. Parece algo extraño, porque no puedes hacer runat = "cliente".

Entonces, en resumen, no puede dejarlo en ningún control ASP .NET y probablemente fue la forma más limpia y más limpia de encontrar todos los controles del lado del servidor para los desarrolladores que crearon formularios web ASP .NET.

fuente: http://mikeschinkel.com/blog/whyrunatserverforaspnetpart2/

La etiqueta runat = "servidor" indica que el código contenido dentro del bloque de script se ejecutará en el servidor (y no en el cliente). En la ejecución, ASP.NET creará objetos del lado del servidor que contienen este código, así como una instancia de la clase de página para contener los controles definidos dentro de la página como instancias de su tipo dado (system.web.ui.webcontrols.textbox, por ejemplo). Este objeto del lado del servidor se invocará en la solicitud del usuario y ejecutará código en respuesta a los eventos.

Crear control en tiempo de ejecución

Necesito una etiqueta en tiempo de ejecución que el tiempo no necesita runat = "servidor" no es necesario

Ejemplo

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
   {
    Label  lblNew = new Label();
    lblNew.ID ="lblnew";
    lblNew.Text ="Test";
    }
}

Este código crea la etiqueta en tiempo de ejecución en el evento de carga de la página

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top