asp.net treeview中的OnSelectedNodeChanged事件不起作用

时间:2013-04-22 08:46:01

标签: c# asp.net treeview

以下是.aspx中的代码,

 <asp:TreeView ID="TreeView1" runat="server"
 OnSelectedNodeChanged="TreeView1_SelectedNodeChanged"
 ImageSet="Arrows" >
</asp:TreeView>
<asp:TextBox runat="server" ID="selectedNode"></asp:TextBox>

在我的.cs文件中,

 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
    selectedNode.Text = TreeView1.SelectedNode.Value;
}

但是,OnSelectedNodeChanged事件不起作用,我想知道原因。

我动态绑定节点。我使用了link

3 个答案:

答案 0 :(得分:2)

你是对的,它不会起作用,因为在链接中写了

 root.SelectAction = TreeNodeSelectAction.Expand;

而不是写//使用.Select

  root.SelectAction = TreeNodeSelectAction.Select;

它会起作用。

TreeNodeSelectAction.Expand
Toggles the node between expanded and collapsed. Raises the TreeNodeExpanded event or the TreeNodeCollapsed event, as appropriate.

TreeNodeSelectAction.None
Raises no events when a node is selected.

TreeNodeSelectAction.Select 
Raises the SelectedNodeChanged event when a node is selected.

TreeNodeSelectAction.SelectExpand
Raises both the SelectedNodeChanged and TreeNodeExpanded events when a node is selected. Nodes are only expanded, never collapsed.

答案 1 :(得分:0)

这是一个旧线程,但如果您为给定节点设置了NavigateURL值,则OnSelectedNodeChanged不会触发的另一个原因。 你可以使用一些技巧。删除NavigateURL属性并设置节点&#34;值&#34;要链接到的URL的属性,然后在后面的代码中触发OnSelectedNodeChanged事件,从SelectedNode.Value属性重定向到url。

HTH

戴夫

答案 2 :(得分:0)

我有类似的问题。在动态生成节点时删除节点的NavigateURL时,将触发OnSelectedNodeChanged事件。