C# ASP TreeView OnteNodePopulate的回调异常/错误处理?

C# ASP TreeView OnteNodePopulate的回调异常/错误处理?,c#,asp.net,treeview,C#,Asp.net,Treeview,我们正在使用配置了延迟加载的asp:TreeView。如果自加载页面后用户已注销,则为OnTerenodePopulate分配的回调方法将引发异常。我们要做的是引导用户进入登录页面 第一次尝试是捕获服务器上的异常并尝试Response.Redirect…,但这不起作用,因为无法在回调中重定向 我尝试过其他各种方法,包括使用ClientScript.RegisterStartupScript。。。但这似乎对OnTerenode不起作用 如果有某种方法可以在客户端钩住回调事件处理,那么这将很容易,但

我们正在使用配置了延迟加载的asp:TreeView。如果自加载页面后用户已注销,则为OnTerenodePopulate分配的回调方法将引发异常。我们要做的是引导用户进入登录页面

第一次尝试是捕获服务器上的异常并尝试Response.Redirect…,但这不起作用,因为无法在回调中重定向

我尝试过其他各种方法,包括使用ClientScript.RegisterStartupScript。。。但这似乎对OnTerenode不起作用

如果有某种方法可以在客户端钩住回调事件处理,那么这将很容易,但是TreeView似乎没有提供任何东西


建议?

好的,我有一个解决办法,尽管我仍然渴望听到其他建议,因为这完全是肮脏的:

在回调中,我用以下块捕获异常:

catch (Exception ex)
{
    if (IsAuthException(ex))
    {
        e.Node.ChildNodes.Add(new TreeNode(@"<script type=""text/javascript"">window.location.href = 'Default.aspx';</script>"));
    }
    else
    {
        throw;
    }
}

幸运的是,TreeView没有逃逸任何东西,因此JS由浏览器执行,并将用户引导到登录页面。

实际上,这在IE中不起作用-它根本不执行JS。不过,我发现IE和FF中都有一些更脏的东西:e.Node.ChildNodes.Addnew TreeNode@;映像的URL无效,因此将调用onerror事件。美好的