How to avoid javascript error 'args is not defined' in ajax autosave implementation?

I have attempted to implement autosave on a .net application using an ajax update panel. I am having difficulty with preventing / capturing errors. My initial attempt to capture errors involved that addition of  including  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);
I then coded the error capture withing the endRequest function. That resulted in a Sys is not defined error. I found this posting: http://encosia.com/updated-your-webconfig-but-sys-is-still-undefined/ which led me to my latest implementation which has the sys handling in a separate script file. Now I receive the error 'args is not defined'. I'm not sure how to reference the args  to enable the ajax call. So you can see I am now out of my depth. I have included the code from my .aspx file and js file below. Your help greatly appreciated
Verdy SysInstance.js
.aspx page
SCRIPT REFERENCE:
	<asp:ScriptManager ID="SMan" runat="server" >
	<Scripts>
		<asp:ScriptReference Path="js/SysInstance.js" />
	</Scripts>
</asp:ScriptManager>

UPDATEPANEL CONTROL:
	    <asp:UpdatePanel ID="Deneme" runat="server" UpdateMode="Conditional">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="TimerAutoSave" EventName="Tick" />
        </Triggers>
        <ContentTemplate>
            <asp:HiddenField ID="hdnUserID" runat="server" Value="" />
            <asp:HiddenField ID="hdnLanguageCode" runat="server" Value="" />
            <asp:HiddenField ID="hdnTempDocID" runat="server" Value="" />
            <asp:HiddenField ID="hdnServerName" runat="server" Value="" />
            <asp:HiddenField ID="hdnServerPort" runat="server" Value="" />
            <asp:HiddenField ID="hdnVirtualDirectoryName" runat="server" Value="" />
            <asp:HiddenField ID="hdnPostASPX" runat="server" Value="" />
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Timer ID="TimerAutoSave" runat="server" Interval="5000" OnTick="TimerAutoSave_Tick">
    </asp:Timer>

Open in new window

verdanteAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
SriVaddadiConnect With a Mentor Commented:
Check here for better understanding
http://msdn.microsoft.com/en-us/library/bb383922.aspx

Not sure what you are intending to do but the BeginRequestEventArgs does not give you error object but EndRequestEventArgs does.

It makes sense because you would not have any error for that request even before sending request

You could have the code in endRequest handler. what kind of error info you are looking for?
0
 
SriVaddadiCommented:
check if this solves your problem

Sys.Application.add_init(AppInit);

function AppInit() {
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);
}

function beginRequest(sender,args) {
    if (args.get_error() != undefined) {
        //$get('Error').style.visibility = "visible"; // Let the framework know that the error is handled, // so it doesn't throw the JavaScript alert.
        $get('Error').style.visibility = "hidden"; // Let the framework know that the error is handled, // so it doesn't throw the JavaScript alert.
        args.set_errorHandled(true);
    }
    prm._scrollPosition = null;
}

function endRequest(sender, args) { // Check to see if there's an error on this request.
    if (args.get_error() != undefined)
    //if ($get('Error').style.visibility == "visible")
    //    CloseError();
    {
        $get('Error').style.visibility = "hidden"; // Let the framework know that the error is handled, // so it doesn't throw the JavaScript alert.
        args.set_errorHandled(true);
    }
}
0
 
verdanteAuthor Commented:
Thanks SriVaddadi. I get a new error now:

args.get_error is not a function

cheers

Verdy
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
SriVaddadiCommented:
BeginRequestEventArgs does not have have get_error method. you have remove the code referring get_error in beginRequest

0
 
verdanteAuthor Commented:
Thanks. Sorry this is my code when I remove the comments. I thought the get_error() method was a property of the args parameter. Can you please advise how I can modify this code to make sure the get_error method is included:

function beginRequest(sender, args) {
    if (args.get_error() != undefined) {
        $get('Error').style.visibility = "hidden";
        args.set_errorHandled(true);
    }
    prm._scrollPosition = null;
}


0
 
verdanteAuthor Commented:
Thx for that. AS you can see I am out of my depth but you have taught me well. I removed the error handling from the beginrequest and it works nicely.
I'll also check out the link so I have a better understanding

thx again
Verdy
0
All Courses

From novice to tech pro — start learning today.