none
ViewState vs ControlState

    Question

  • Hola a todos,

    Pueden explicarme cual es la diferencia entre ambos?,
    Lei mucho pero no entiendo

    Gracias 
    Augusto Tin
    Tuesday, February 03, 2009 3:44 AM

Answers

  • Hola Augusto,

    la diferencia es la siguiente:

    El ViewState se implementa como un campo oculto en el formulario (hiddenField llamado __viewstate). Aqui se almacenan los datos de los controles que se muestran actualmente en la página (contiene el valor y el estado de los controles). Si haces un Postback al servidor y, por algún motivo, debes volver a mostrar la página de nuevo, gracias al viewstate los controles pueden volver a mostrar su  valores originales (sino al usuario le aparecerían todos vacíos. De esta forma le aparecen los datos que él introdujo).

    Ahora bien, imagínate que tu te creas un control propio (CustomControl). Puedes crearte un UserControl (archivos .ascx), derivar una clase de WebControl o bien derivarla de CompositeControl (són las tres formas de crear controls de usuarios propios).
    Imagínate que tu deseas que tu control guarde valores en el viewstate pero no quieres que el usuario pueda decidir si se guardan o no esos valores (ya sabes que puedes marcar la propiedad EnableViewState de un control y ponerla a false). Es decir, quieres que el control guarde si o si ciertos  valores en el viewstate. Entonces, en vez de utilizar el viewstate, se guardan en el ControlState.

    Asi pues, la diferencia reside en que si utilizas controles propios en los que deseas guardar datos entre postbacks (esté o no esté habilitada la propiedad EnableViewState) debes utilizar ControlState. Recuerda que el en evento Page_Load debes llamar a RegisterRequiresControlState y debes sobreescribir los eventos LoadState y SaveState.

    Espero que te sirva de ayuda!

    Si es así, porfavor, marca la respuesta como válida! ;)

    Gracias y suerte!

    ===================================================================================== Javier Jiménez Roda MCP (Microsoft Certified Professional) MCTS Web Apps (Microsoft Certified Technology specialist)
    • Marked as answer by Augusto Tin Tuesday, February 03, 2009 2:21 PM
    Tuesday, February 03, 2009 8:43 AM