No hay ningún problema con el uso de ViewState para almacenar valores de propiedad para un control de usuario.
Su afirmación "cuantas más propiedades controle el usuario más basura tendrá en el ViewState" no es necesariamente cierta. Es ciertamente posible tener valores de seguimiento ViewState de las propiedades para los controles pero no almacenar datos en la variable de campo __VIEWSTATE
del formulario oculto.
Suena loco ¿no? Consulte TRULY Understanding ViewState para obtener un artículo brillante sobre cómo funciona ViewState.
Depende de cuándo inicialice las propiedades de sus controles en su ciclo de vida. ViewState solo se almacenará en el campo __VIEWSTATE
oculto después de StateBag
para que un control comience a rastrear los cambios en los valores de las propiedades. Esto ocurre en el método OnInit
para un control que se encuentra en las primeras etapas del ciclo de vida, pero existen técnicas para establecer los valores de sus propiedades antes que no incurrirán en el costo de __VIEWSTATE
hinchazón y aún le darán todos los beneficios.
Vea el artículo vinculado.Se habla de todo, con mucha claridad y mejor de lo que puedo :-)
Todos Los controles web lo hacen de la misma manera, es por eso que ViewState se vuelve enorme ... –
tuve que recurrir a esto al final. Es bastante frustrante cómo funciona, pero funciona ... bueno, por ahora ... :) –