2010-02-24 16 views
6

me gustaría saber cuál es exactamente la diferencia entre el control HtmlHtml control y asp.net web control

y asp.net web control. ¿Por qué necesitamos estos dos tipos de controles?

he colocado uno html texto de entrada, el botón html y cuadro de texto asp.net y ASP.NET botón en mi página web

<input id="Text1" type="text" /> 

    <input id="Button2" type="button" value="button" /> 







    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

    <asp:Button ID="Button1" runat="server" Text="Button" /> 

cuando tomo ver fuente, ambos son prestados de manera similar

<input id="Text1" type="text" /> 

    <input id="Button2" type="button" value="button" /> 




    <input name="TextBox1" type="text" id="TextBox1" /> 

    <input type="submit" name="Button1" value="Button" id="Button1" /> 

cuál es la ventaja del control web sobre el control html.

Tengo algunos enlaces en internet, pero no está claro qué es exactamente

que se utilizan.

http://www.extremeexperts.com/Net/FAQ/DiffBetweenServerandHTMLControls.aspx.

¿Podría alguien explicar la diferencia entre estos dos controles?

Respuesta

1

En resumen, los controles HTML no persisten en su estado mientras se realizan las devoluciones. Por otro lado, el control de ASP.Net le proporciona el lujo de tener su estado guardado, mientras que varias devoluciones automáticamente. Diferente mientras se usa el control ASP.Net en lugar de elemento HTML es:

<input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+.................." />

Este campo oculto se auto generada por ASP.Net y contiene todo lo que los controles estatales en el atributo de valor.

0

Los controles del servidor tienen un atributo runat = "server" que le permite proporcionar la lógica del lado del servidor para estos controles en el código subyacente. También puede agregar este atributo a los controles HTML existentes para obtener esta misma funcionalidad.

0

Los controles HTML son controles simples que se corresponden directamente con los elementos HTML.

Los controles web de ASP.NET resumen los elementos HTML y, en general, proporcionan más control sobre el estilo (aunque algunos llamarían a esto algo malo).

5

Primero, si arrastra un control Html desde la Caja de Herramientas a su superficie de diseño como en su ejemplo, la etiqueta creada no incluye runat = "server". Eso significa que es una etiqueta Html nativa y no un control .NET. Una etiqueta Html nativa sin runat = "servidor" no tiene funcionalidad del lado del servidor. Por lo tanto, no podría establecer el valor de la etiqueta de entrada "Texto1" en el código subyacente.

En segundo lugar, una vez que agrega runat = "server" a su etiqueta de entrada Html, la convierte de una etiqueta Html nativa en un HtmlControl que deriva de System.Web.UI.Control. Ahora la pregunta podría transformarse en las diferencias entre algo que se deriva de System.Web.UI.Control y System.Web.UI.WebControl. Sin embargo, para abordar específicamente su pregunta, vamos a comparar un tipo de entrada estándar = "texto" de control para el control Cuadro de texto:

  1. control de cuadro de texto se puede acceder desde el código subyacente en un control de entrada no puede (no es fácil), que también significa que puede conectar eventos del lado del servidor para un control TextBox mientras que no puede hacerlo con un control Html estándar.
  2. Un control TextBox guarda automáticamente su valor usando ViewState.
  3. Un control TextBox se puede despellejar utilizando un archivo Theme y .skin, mientras que un control nativo Html no se puede.
  4. Un TextBox se puede representar como un tipo de entrada = control de "texto" o un área de texto dependiendo de su propiedad TextMode.
  5. Un control TextBox puede participar en la validación utilizando validadores.
  6. Por último, pero no menos importante, el control TextBox puede usar adaptadores de control para procesar de forma diferente en diferentes navegadores si es necesario. Ver http://msdn.microsoft.com/en-us/magazine/cc163543.aspx.

Ahora, dicho todo esto, si no necesita ninguna de las capacidades de WebControl, entonces el uso de un control Html nativo es sustancialmente más reducido. En su ejemplo, simplemente arrastró dos controles vacíos a su superficie de diseño. Si eso es todo lo que necesita, usar el control .NET sería exagerado. Sin embargo, a medida que comienzas a agregar eventos de Autocompletar y del lado del servidor, el contenido completo, Javascript y todo lo que llega al navegador es mucho más grande.

Cuestiones relacionadas