2008-12-05 16 views
5

Tengo una página aspx que carga algunos controles dinámicamente en la devolución (es decir, cuando ocurre un evento de clic) y los agrega a un marcador de posición. Dependiendo de qué se haga clic, se debe cargar un conjunto diferente de controles.
Esto funciona perfectamente la primera vez, pero cuando borro los controles del marcador de posición e intento cargar dinámicamente un conjunto diferente de controles obtengo el siguiente error: "Falló al cargar viewstate. El árbol de control en el que viewstate se está cargando debe coincidir el árbol de control que se utilizó para guardar viewstate durante la solicitud anterior ".Error al cargar viewstate al cargar dinámicamente controles diferentes

Esto sucede incluso si lo hago ViewState.Clear().

¿Hay alguna manera de hacerlo?

Respuesta

-1

Al crear dinámicamente los controles, debe asegurarse de que cada control que cree tenga una identificación única.

Creo que lo que está sucediendo aquí es que está nombrando sus controles como: Control1, Control2, Control3.

Y tal vez cuando haga clic para crear un conjunto diferente de controles podría dar el mismo nombre a un tipo diferente de objeto, digamos que Control1 se creó primero como un cuadro de texto y cuando hace clic en una casilla de verificación.

Sin ver el código es difícil decir por qué ViewState.Clear() no funciona, pero si está tratando de borrar el ViewState no necesita una devolución de datos, puede intentar solicitar una nueva página y pasar los argumentos en la cadena de consulta en lugar de una devolución de datos. Esto también será más rápido, ya que no tiene que enviar la información de ViewState al servidor.

Cuestiones relacionadas