如何在树视图中为每个选定节点调用客户端和服务器端代码?

时间:2009-11-01 17:38:06

标签: asp.net treeview

对于treeview中的每个节点,其NavigateUrl设置为调用加载新页面的客户端功能(第2页)。 执行此操作时,树视图的SelectedNodeChanged事件不会触发(第1页)。

[服务器端]

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

RefreshWorkspaceHome():加载新页面或调用doPostBack来执行第2页的某些服务器端代码。 现在问题是第1页没有触发SelectedNodeChanged事件。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果某个节点具有导航URL,则当用户单击该URL时,Web浏览器将导航到指定的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");
}