Как вызывать код на стороне клиента и на стороне сервера для каждого выбранного узла в древовидной структуре? - PullRequest
0 голосов
/ 01 ноября 2009

Для каждого узла в древовидной структуре его NavigateUrl установлен для вызова функции на стороне клиента, которая загружает новую страницу (страница 2). При этом событие SelectedNodeChanged для дерева не запускается (стр. 1).

[Сторона сервера]

 node.NavigateUrl = "javascript:RefreshWorkspaceHome();";

RefreshWorkspaceHome (): либо загрузите новую страницу, либо вызовите doPostBack для выполнения некоторого кода на стороне сервера для страницы 2. Проблема теперь в том, что событие SelectedNodeChanged не запускается для страницы 1.

Есть идеи?

1 Ответ

0 голосов
/ 01 ноября 2009

Если у узла есть URL-адрес для навигации, то когда пользователь щелкает по нему, веб-браузер переходит к указанному URL-адресу, таким образом обходя сообщение, которое могло бы произойти. Это происходит потому, что узел просто отображается как гиперссылка в HTML («тег»). Вместо этого вы можете удалить свойство NavigateUrl из узлов и выполнить перенаправление на новую страницу на сервере. Вот пример того, как может выглядеть код вашей страницы 1:

// This is the event handler for the TreeView's SelectedNodeChanged event
protected void onSelectedNodeChanged(object sender, EventArgs e)
{
    // Do server-side processing first
    // ...

    // Now do the redirect to page 2
    Response.Redirect("page2.aspx");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...