VERDAD ViewState entendimiento artículo sobre ViewState
el artículo se habla de buen historial de lo que leí sobre ViewState de entendimiento.
Detrás de la ViewState a través de StateBag
la realización, StateBag HashTable función similar, por simplemente la grabación propiedades de control. La diferencia es, StateBag si la grabación se ha modificado propiedades funcionales: el atributo se marca como modificado Dirty
.
Los cambios en las propiedades de control, al TrackViewState
no serán marcados convocatoria anterior Dirty
, y en TrackViewState
la llamada, serán marcados. La TrackViewState
llamada está en las páginas de OnInit
la etapa, desde el control secundario hasta que las capas superiores de la llamada Página. Esto significa que, incluso si inicializar el valor de OnInit del control en Page, el valor será el ViewState Track
.
ViewState configurado como Base primer plano codificado de cadena, el contenido de la cadena está marcado de Dirty
serialización del control de valor de atributo.
valor de control En funcionamiento PostBack, ViewState siendo devuelto, y la página se modifica está en el OnInit, OnLoad antes de ser cargado, lo que significa:
- En OnInit valor que hemos creado, no cubrirá el valor de la página
- En el valor OnLoad que nos propusimos, cubrirá el valor de retorno de la página, por lo que si desea inicializar los controles en OnLoad, no quieren cubrir el valor establecido por el usuario, es necesario añadir
IsPostBack
el juicio.
Además, si usted no desea controlar el valor se almacena en ViewState, se puede establecer EnableViewState
en false, esto no afectará el valor de la operación de retorno PostBack establecido por el usuario.
El artículo menciona algunos errores comunes y mejores prácticas.
- Para algunas operaciones ligero fácilmente disponibles, tales como la inicialización de las ciudades tales cuadro desplegable puede
- ViewState desactivar Guardar sobrecarga de la red
- El control se inicia en el OnInit, esto no va a cubrir el valor PostBack
- Esto hace que el servidor para inicializar los aumentos de presión de funcionamiento, sino que también mejorará la eficiencia de transmisión de la red
- Al desarrollar el control, el valor por defecto no debe estar en el OnLoad, que cubriría el valor preestablecido, el enfoque correcto es, si existe una directa por Key en StateBag para determinar si desea utilizar los valores por defecto
- Cuando se añade el espacio de la página, todas las páginas en el evento a su vez gatillo (init, carga, render, etc.) en el control, por lo que el valor inicial del atributo de control no desea que se va a grabar en ViewState, también puede ser añadido frente al control, conjunto valor de la propiedad