Tengo un problema en el que dos controles que se agregan mediante programación están intentando cargar uno al otro viewstate, quiero borrar viewstate antes de cargar los controles, probé Viewstate.Clear pero no hizo nada, cuando desactivo viewstate en el contenedor de mis controles todo funciona bien, excepto que el estado del control no se mantiene. ¿Hay alguna manera de borrar el estado de vista de solo un control específico?¿Cómo borrar Viewstate?
Respuesta
Desde su descripción, parece que usted está haciendo uno de los errores comunes al cargar sus controles dinámicos - ya sea que vaya a cargar demasiado tarde o no les está asignando identificadores únicos (y les asigna el mismo ID único cada vez que se produce una devolución de datos).
Si este es realmente su problema, borrar el viewstate no es la acción adecuada a tomar. Es muy sencillo de solucionar, comprobar estos tres enlaces:
http://msdn.microsoft.com/en-us/library/ms972976.aspx
http://www.4guysfromrolla.com/articles/092904-1.aspx
http://geekswithblogs.net/shahed/archive/2008/06/26/123391.aspx
Suponiendo que ambos controles heredan de System.Web.UI.Control. Puede deshabilitar sus ViewStates individuales estableciendo su EnableViewState en falso. También puede borrar su ViewState, ya que cada control tiene una propiedad ViewState.
El problema es que tendría que hacerlo al sobrecargar el método Render de la página, ya que ViewState se guarda en el ciclo de vida de la página justo antes de que Render sea llamado por el evento SaveViewState. Cualquier otro evento resultaría en que todavía esté allí. –
@Nisssan: ¿Se refiere a si borra la propiedad ViewState en lugar de deshabilitar ViewState? –
Sí. Si lo deshabilita, está bien ... no es necesario borrarlo. Pero si solo quiere aclararlo, tendrá que hacerlo en el evento Render. De lo contrario, lo borrará ... pero incluso antes de Render es SaveViewState ... así que lo agregará. –
Asegúrese de que los id de los dos controles agregados mediante programación sean diferentes y que el problema con ViewState desaparezca.
Puede desactivar estado de vista en un control específico:
EnableViewState="False"
Sí,
string controlName = "name of control";
ViewState[controlName] = null;
// create control, add it to the page
Si ViewState se interpone en su camino y refugio' t hecho ya, por favor lea
Te hará sentir mucho más cómodo trabajando con ViewState y todo el ciclo de vida de la página ASP.NET.
- 1. ¿Dónde se almacena ViewState?
- 2. ¿ViewState expira?
- 3. ViewState Chunking en asp.net
- 4. asp.net cifrado de viewstate
- 5. Error al cargar viewstate
- 6. .NET ViewState Decoder
- 7. ASP.NET MVC y ViewState
- 8. Cuándo habilitar/deshabilitar Viewstate
- 9. System.Web.UI.ViewStateException: viewstate no válido
- 10. ASP.NET - Viewstate Size
- 11. ViewState o HiddenField
- 12. ViewState como Atributo
- 13. Optimización de ViewState
- 14. ViewState nulo en Safari
- 15. Almacenamiento en caché Viewstate?
- 16. ¿Cómo decido qué almacenar en viewstate?
- 17. asp.net C# MVC: ¿Cómo vivo sin ViewState?
- 18. Cómo eliminar o comprimir su asp.net viewstate
- 19. valor ViewState grande en ASP.NET
- 20. Almacenamiento de datatable en ViewState
- 21. Viewstate and controls en ASP.NET
- 22. Borrar AjaxToolkit AsyncFileUpload control
- 23. Ejecutar ASP.NET sin viewstate activado
- 24. ¿Diferencia entre viewbag y viewstate?
- 25. ¿Cuándo es seguro deshabilitar viewstate?
- 26. Cómo borrar: ambos; ¿correctamente?
- 27. ¿Cómo borrar MemoryCache?
- 28. ¿Cómo borrar una cadena?
- 29. ¿Cómo borrar ImageView correctamente?
- 30. Cómo borrar una matriz
Como complemento: asegúrese de crear sus controles lo antes posible y nunca después de 'Page_Load' . 'Page_Init' es preferido, pero el evento' Page_Load' funcionará. 'Page_PreRender' will ** not ** – Earlz
Agrego mis controles de usuario en ciertos eventos. Los controles de usuario contienen un modal que se presenta para el usuario. No es una opción cargar todos los controles de usuario en page_load porque cada uno de ellos tiene mucha carga y no es necesario obtener todos los datos antes de saber realmente que el usuario lo necesita. Entiendo la respuesta, pero debe haber una solución para borrar el estado de vista para situaciones como la mía. – Nurp
@Nurp debe hacer una nueva pregunta con los detalles para su situación particular. – slugster