Obviamente esto es una gran molestia, pues no nos permite ver cómo va quedando nuestro formulario en la vista de diseño.
Pero ojo, hay un requisito para que este bug de Visual Studio se haga notorio y nos cause molestias:
Tienes que estar manipulando alguna variable de sesión en cualquiera de los eventos Init (preInit, Init, OnInit…).
Si no usas variables de sesión en esos eventos de página, no te preocupes… el bug no te afectará.
Sigamos…y por qué ocurre este error?
Pues parece que Visual Studio 2010 analiza el código de los eventos Init cuando al pasar a la vista de diseño… y al detectar que estás gestionando variables de sesión… fuah! convierte los controles a cajas grises. :s
Por ejemplo, este código generará el error:
Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit Session("abc") = 1 End Sub
Cómo solucionamos el tema? Simple, hay que incluir un código con una validación adicional para sobreescribir el OnInit:
Protected Overrides Sub OnInit(ByVal e As System.EventArgs) If Context IsNot Nothing AndAlso Context.Session IsNot Nothing Then Session("abc") = 1 End If End Sub
La alternativa sería que muevas tu código al OnInit, algo así:
Protected Overrides Sub OnInit(ByVal e As System.EventArgs) If Context IsNot Nothing AndAlso Context.Session IsNot Nothing Then 'tu código para manipular sesiones del evento …Init se han trasladado hasta aquí End If End Sub
Después cierren la página aspx, construyan la solución (Build Solution) y vuelvan a abrir la página… verán los controles correctamente. En mi caso quedó así:
Espero que les sea de utilidad ;)
UPDATE: Este problema ha sido resuelto instalando el .net Framework 3.5 SP 1.
8 comentarios:
Me gustaria saber que mecanismo de redundancia se puede prever en el diseño de una buena aplicacion en dotnet, que sera compartida con sucursales conectadas con lineas adsl de 2 mega, con por lo menos 15 usuarios cada una. con un total de 60 sucursales.
y como se puede hacer balanceo de carga en dicha aplicacion
Hola enigma,
creo que tu pregunta tiene nada que ver con el post.
Sin embargo, tratando de entender tu pregunta, creo que lo que necesitas para que tu equipo de desarrollo trabaje en simultáneo desde distintas ubicaciones geográficas es un software que te permita gestionar el control del código fuente y por lo tanto versionar tu código fuente.
Te recomiendo que le des una mirada a Visual Studio Team Foundation Server o si te vas por el lado del software libre, prueba Subversion o Tortoise.
Saludos
Gracias por la solución!!! nos has quitado un problema de encima (y bastante gordo) :) por cierto ¿ cómo llegastes a esas solución ? si no es una indiscreción preguntarlo.. jeje
Saludos máquina..
Hola Sergio,
pues creo que con constante investigación para seguir aprendiendo, y eso nos da experiencia.
Saludos
hola amigo me saca canas ese error ... pero no utilizo variables de session y me sale ese puto error, solo utilizo el init pero de un gridview ... que puedo hacer .. gracias
Hola hargir,
prueba a usar el mismo código que indico arriba... y úsalo de la maisma manera que indico para el evento init.
Lamaentablemente en este momento no puedo hacer pruebas sobre tu caso.
Saludos
Hola Serrano mira que ese tipo de error es problema del visual studio que se soluciona con el service pack 1 lo instale y adios problema .... gracias de todas formas
Gracias por tu codigo, me resolvio mi problema, saludos
Publicar un comentario