By default on error during async request UpdatePanel shows an annoying alert messagebox. There is a way to avoid that and handle errors on your own. Here is how to handle errors in ASP.NET AJAX (This is not only for UpdatePanels). The trick is to add handler to endRequest to the PageRequestManager:
<script type="text/javascript">
function EndRequestHandler( sender, args )
{
if ( args.get_error() != undefined )
{
// set error is handled in order to avoid the messagebox
args.set_errorHandled( true );
}
}
function AppLoad()
{
Sys.WebForms.PageRequestManager.getInstance().add_endRequest( EndRequestHandler );
}
Sys.Application.add_load( AppLoad );
</script>
Thursday, June 19, 2008
Tuesday, June 17, 2008
UpdatePanel doing full postback when it should not!
I had an UpdatePanel with a Timer for AsyncPostBackTrigger. But although my ScriptManager had EnablePartialRendering="true", my page always got refreshed. The problem was a setting in my web.config. I removed this line:
<xhtmlConformance mode="Legacy"/>
This setting was something that probably I forgot to remove when migrating from asp.net 1.1 to asp.net 2.0.
<xhtmlConformance mode="Legacy"/>
This setting was something that probably I forgot to remove when migrating from asp.net 1.1 to asp.net 2.0.
Monday, June 9, 2008
Javascript dump object
This is a simple javascript function to dump an object:
function dumpObject( object, depth, max )
{
depth = depth || 0;
max = max || 2;
if ( depth > max )
return false;
var indent = \'\';
for ( var i = 0; i < depth; i++ ) indent += \' \';
var output = \'\';
for ( var key in object )
{
output += \'\\n\' + indent + key + \': \';
switch (typeof object[key])
{
case \'object\':
output += dumpObject(object[key], depth + 1, max);
break;
case \'function\':
output += \'function\';
break;
default:
output += object[key];
break;
}
}
return output;
}
function dumpObject( object, depth, max )
{
depth = depth || 0;
max = max || 2;
if ( depth > max )
return false;
var indent = \'\';
for ( var i = 0; i < depth; i++ ) indent += \' \';
var output = \'\';
for ( var key in object )
{
output += \'\\n\' + indent + key + \': \';
switch (typeof object[key])
{
case \'object\':
output += dumpObject(object[key], depth + 1, max);
break;
case \'function\':
output += \'function\';
break;
default:
output += object[key];
break;
}
}
return output;
}
Subscribe to:
Posts (Atom)
