miércoles, 16 de septiembre de 2009

Sys.WebForms.PageRequestManagerParserErrorException

Hace aproximadamente cuatro meses inicie un proyecto utilizando el framework Visual Studio .NET 2005. En el proyecto necesitaba utilizar tecnología AJAX con ASP.NET, y para evitar el constante parpadeo de las páginas web me vi en la necesidad de utilizar los famosos UpdatePanel. Todo parecía estar bien hasta que al llenar un DataGrid (que está dentro de un UpdatePanel) me empezó a mostrar un error como el que se muestra en la figura.

Estuve aguantándome el error mucho tiempo, hasta que me canse y me propuse solucionarlo. Si tú tienes el mismo error y haz probado de todo, a continuación te comento como solucionarlo.

1. Agregar el ScriptManagemenr en la página ASP así:

<asp:ScriptManager

ID="ScriptManager1"

runat="Server"

EnableScriptGlobalization="true"

EnableScriptLocalization="true"

AsyncPostBackTimeout="2500" />

2. Agregar un Trigger al UpdatePanel para sincronizar el objeto que genera el postback con el UpdatePanel, en mi caso es un botón.

<Triggers>

<asp:AsyncPostBackTrigger

ControlID="cmdGenerar"

EventName="Click" />

< /Triggers>

3. Agregar el siguiente código JavaScript en la página ASP:

<script type="text/javascript" language="javascript" >

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

function EndRequestHandler(sender, args)

{

if (args.get_error() != undefined)

{

args.set_errorHandled(true);

location.reload(true);

}

}

< /script>

Asi fue como pude solucionar el problema, espero que a ustedes tambien les sirva.

2 comentarios:

Luis Lozada dijo...

hola que tal Chuben buen dia, tengo un problema similar al que tu tenias y que solucionaste con este codigo que pones aqui, implemente tu solucion pero sale un error, la descripcion del error es 'Sys.WebForms.PAgeRequestManager.getInstance()' is null or not an object

podras ayudarme por favor con esto, mi correo es jllozada2@gmail.com
saludos

jose luis

JONCAS dijo...

Te da el error porque estás poniendo la línea
Sys.WebForms.PAgeRequestManager.getInstance()

antes de que se cargue la página y por consiguiente el manejador.

Coloca esta línea dentro de una función "doLoad" de javascript, a la que llamarás en el Body de la página cuando se cargue (OnLoad).

Con esto tendrás resuelto el problema

Saludos,

Jonathan Casal