在 ASP.NET 的树形视图控件中,OnSelectedNodeChanged 事件无法正常工作。

4

这是我的 .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事件不起作用,我想知道为什么。

我动态绑定了节点。我使用了这个链接


1
我动态地绑定了节点 :) 我使用了这个链接 http://stackoverflow.com/questions/16139479/how-to-add-root-node-in-tree-view-dynamically-using-asp-net/16139564?noredirect=1#comment23057324_16139564 - zey
@andy,是的,它没有触发! - zey
3个回答

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.

0

这是一个旧的线程,但 OnSelectedNodeChanged 事件不触发的另一个原因是如果您为给定节点设置了 NavigateURL 值。

不过,有一个技巧可以使用。删除 NavigateURL 属性,并将节点“Value”属性设置为要链接到的 URL,然后在 OnSelectedNodeChanged 事件中,在代码后台中重定向到 SelectedNode.Value 属性中的 URL。

希望对您有所帮助

Dave


0

我遇到了类似的问题。当我在动态生成节点时删除节点的NavigateURL属性后,OnSelectedNodeChanged事件就会触发。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接