Исключение обратного вызова / обработка ошибок для ASP TreeView OnTreeNodePopulate? - PullRequest
0 голосов
/ 13 мая 2010

Мы используем asp: TreeView с отложенной загрузкой. Метод обратного вызова, назначенный для OnTreeNodePopulate, выдает исключение, если пользователь вышел из системы с момента загрузки страницы. Мы хотим направить пользователя на страницу входа.

Первой попыткой было перехватить исключение на сервере и попробовать Response.Redirect (...), но это не сработало, потому что вы не можете перенаправить в обратном вызове.

Я пробовал различные другие подходы, включая использование ClientScript.RegisterStartupScript (...), но, похоже, это не работает для OnTreeNodePopulate.

Если бы мы могли каким-то образом подключиться к обработке событий обратного вызова на стороне клиента, это было бы легко, но TreeView, похоже, ничего здесь не предлагает.

Предложения

1 Ответ

0 голосов
/ 13 мая 2010

ОК, у меня есть обходной путь, хотя я все еще хочу услышать другие предложения, так как это полная грязь:

В моем обратном вызове я ловлю исключение со следующим блоком:

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 исполняется браузером и направляет пользователя на страницу входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...