A veces es necesario realizar ciertas acciones antes de que un updatePanel realice el update o cuando recibe la operación del servidor, para este tipo de cosas una opción es realizarlas por código javascript, solo tienes que poner el siguiente código en el bloque <SCRIPT type="text/javascript"> de la página aspx en la que quieras realizar las acciones antes y depués del postback. En este código lo único que se hace es un alert antes del request y cuando este termina, pero tal vez el concepto os sirva para alguna cosa en vuestros desarrollos con Ajax.
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
function InitializeRequest(sender, args)
{
alert('inicio');
}
function EndRequest(sender, args)
{
alert('fin');
}
El código y un artículo en inglés bastante más detallado sobre el tema lo podeis encontrar en:
http://www.singingeels.com/Articles/AJAX_Client_Side_Actions_Before_and_After_PostBack.aspx
Estos días teniamos problemas con la perdida de las variables de sesión de una forma aparentemente incomprensible. Finalmente investigando por internet descubrí que el problema está en el framework 2.0 de .net y que trabajando con Directory.Delete() se borran las variables de sesion tipo Session["tuvariable"] que tuviesemos guardadas.
La solución en el caso de la aplicación en la que estabamos trabajando fue borrar los archivos que contenían estas carpetas, y posterioremente cuando ya no eran necesarias las variables de sesión borrar todo.
Si me entero de alguna forma de solucionar esta perdida de variables de sesión os lo comentaré, por ahora tener cuidado cuando trabajeis mezclando las variables de sesión y el Directory.Delete().
Aquí teneis un hilo de un foro en inglés hablando sobre el tema:
http://forums.asp.net/p/1056323/1504793.aspx
Y un artículo en inglés sobre el tema:
http://www.vikramlakhotia.com/Deleting_Directory_in_ASPnet_20.aspx
Espero que os sea útil y os libre de más de un quebradero de cabeza, pasar buen fin de semana, saludos
Lo que nos encontramos en el msdn sobre este error:
http://msdn.microsoft.com/es-es/library/bb310803.aspx
La tecnología utilizada .net asp 2.0 y ajax,
En mi caso este error salia al intentar descargar un archivo, al darle al botón descargar me salia el error:
Sys.WebForms.PageRequestManagerErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.
En un principio leí por ahí que podría tratarse de que los updatepanels no se llevarán bien con el Response.WriteFile que utilizaba pero finalemente la solución es tan sencilla como registrar en el ScriptManager de la página web el botón de la descarga y que era el que ejecutaba el response, con el siguiente código dentro del pageload de la página :
Normal
0
21
false
false
false
ES
X-NONE
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabla normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
protected void Page_Load(object
sender, EventArgs e)
{
Normal
0
21
false
false
false
ES
X-NONE
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabla normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
ScriptManager.GetCurrent(this.Page).RegisterPostBackControl(btn_Descargar);
Normal
0
21
false
false
false
ES
X-NONE
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabla normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
// El resto de tu código ...
}
Espero que os sirva, saludos