Thinking in SharePoint

Blog sobre desarrollo en la plataforma .Net, centrado en Silverlight y SharePoint

Hace un par de semanas me encontré con un problema, esta vez no relacionado con SharePoint, sino directamente con el desarrollo web en ASP.Net.

Uno de esos problemas tontos que pueden retrasar tu trabajo, y cuya solución es una auténtica chorrada, pero que en el momento que sucede puede llegar a desesperarte y volverte loco.

Situación:
Estoy testeando una webpart de reciente creación, y en una de las muchas modificaciones, sucede algo extraño.... tras pulsar un botón, el servidor parece que no detecta dicho postback, y decide mostrar el webpart como si se acabara de iniciar por primera vez. Lo peor de todo, parece que sucede aleatoriamente en alguna pulsación del botón.

Acto seguido, depuración:
Y es aquí cuando encuentras que, aleatoriamente, tras algún postback vuelve a surgir un Refresco Fantasma, haciendo que la página se recargue como si fuera la primera vez que se visualizara.

Siguiente paso, Google MSN Live Search:
Como buen profesional, el siguiente paso a pensar es: "Seguro que a alguien ya le ha pasado, vamos a buscar esto en internet y no perdamos tiempo", pero entonces es cuando te das cuenta de lo difícil que es buscar el problema... Doble postback? Postback fantasma? Difícil, ya que el problema es que la segunda vez no se trata de un postback. Refresco fantasma quizá?

Solución:
Viendo que lo anterior no ha funcionado, hacemos una depuración más exhaustiva, y es entonces cuando nos echamos las manos a la cabeza al descubrir que el único problema es... que no habíamos puesto ninguna ruta a la imagen de un ImageButton.

Increíble pero cierto, ASP.net hace una petición para descargar la imagen correspondiente al botón en la ruta indicada, y al no indicarse ninguna ruta (en este caso porque estaba testeando la aplicación y no lo creí importante), se toma como ruta la página actual, provocando un refresco, que evidentemente, NO es un postback.

Es algo que todos deberíamos haber sabido, pero pasa. Con esta entrada intentaremos recordar qué hacer para no perder tiempo la próxima vez que se produzca esta situación.

Alguien más al que le ha pasado: David Klein's Corner

0 comentarios:

Publicar un comentario