Pregunta

Estoy tratando de entender la infraestructura de control para entender para qué ASP.NET mantiene el estado de vista.

Existen estos controles HTML habituales, por ejemplo: <input type="radio" checked="checked"/> - > Entiendo que estos no tienen viewstate

Luego están los controles HTML con runat = " server " <input type="radio" checked="checked" runat="server"/> - > ¿El estado de vista se mantiene entre las devoluciones?

Luego están los controles ASP.NET <asp:TextBox id="txtMyText" runat="server"/> - > Entiendo que estos tienen viewstate

Tenemos algunos controles personalizados que heredan HtmlTextBox <myPrefix:myTextBox id="txtMyText" runat="server"/> - > ¿Es esto lo mismo que el tipo 2 anterior?

¿Es seguro asumir que cualquier control con etiqueta runat="server" tendrá viewstate mantenido?

¿Fue útil?

Solución

Hay 3 tipos de controles, los elementos HTML estándar como, los controles del servidor HTML que tienen la etiqueta runat = server agregada y los controles web completos. Solo los controles web tienen viewstate mantenido.

Otros consejos

Cuando teníamos problemas con viewstate, comencé a usar el software auxiliar Viewstate de Binary Fortress http : //www.binaryfortress.com/aspnet-viewstate-helper/

Te da una idea real de lo que está sucediendo, además de ayudarte con los problemas de rendimiento relacionados con el estado de la vista, puedes decodificar el estado de la vista con un solo clic y ver qué hay realmente allí, para que entiendas qué controles están usando viewstate y que no son, y exactamente lo que están almacenando allí.

Además, algo que nadie más ha mencionado es ControlState. Esto vino junto con ASP.NET 2 y la teoría es que lo importante que es necesario para que funcione un control va en el estado de control, y los datos, etc. en el estado de vista, por lo que puede desactivar viewstate y enlazar los datos a su control en cada devolución de datos y el control todavía funciona básicamente usando controlstate. Digo & Quot; teoría & Quot; porque en la práctica la implementación parece irregular. Cuando mira el código de la lista desplegable usando el reflector, por ejemplo, esto no se implementa correctamente. Esto puede haber cambiado con versiones posteriores del marco, no estoy seguro. Mucha información sobre el estado de control por ahí si la buscas, solo pensé en mencionarlo.

afaik no, que los controles HTML no están diseñados para mantener nada en el estado de vista, si te importa, toma los controles web.

Cualquier cosa que ponga en la vista de su página y agregue runat = " server " tendrá el estado de vista mantenido.

En cuanto a los controles agregados dinámicamente, depende de cuándo y cómo agregue el control al árbol de control. Consulte la respuesta aceptada a esta pregunta , pero también consulte mi pregunta aquí .

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