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

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

4

3 回答 3

2

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

 root.SelectAction = TreeNodeSelectAction.Expand;

而不是写 //use .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.
于 2013-04-22T09:03:29.597 回答
0

这是一个旧线程,但 OnSelectedNodeChanged 不触发的另一个原因是您是否为给定节点设置了 NavigateURL 值。不过,您可以使用一个技巧。删除 NavigateURL 属性并将节点“Value”属性设置为要链接到的 url,然后在后面代码中触发的 OnSelectedNodeChanged 事件中,从 SelectedNode.Value 属性重定向到 url。

高温高压

戴夫

于 2015-08-05T02:29:05.337 回答
0

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

于 2017-02-14T22:35:05.660 回答