0

我有一个在 C# asp .net 中使用 TreeView 控件的 Web 应用程序。

我已经为 2 个事件设置了事件处理程序 1) onselectednodechanged 2) ontreenodeexpanded

      <asp:Panel ID="PanelTreeView" runat="server" height="510" Width="270" ScrollBars="Auto">
        <asp:TreeView ID="TreeViewTabs" runat="server" Font-Size="Medium" NodeIndent="10" 
           onselectednodechanged="TreeViewTabs_SelectedNodeChanged" 
             ontreenodeexpanded="TreeViewTabs_TreeNodeExpanded">
           <LeafNodeStyle Font-Overline="False" Font-Size="Small" NodeSpacing="0px" 
                VerticalPadding="0px" />
            <NodeStyle NodeSpacing="0px" VerticalPadding="0px" />
           <SelectedNodeStyle ForeColor="Red" />
        </asp:TreeView>                      
     </asp:Panel>

问题是,如果用户单击树中的选定节点,Web 应用程序会回发,我不知道应该捕获哪个事件。我知道这绝对不是“onselectednodechanged”事件。我还尝试了事件处理程序“onTreeNodeCheckChanged”,它也不会触发该事件。我知道回发将通过 Page_Load() 处理程序,但我更愿意以捕获 TreeView 的“onselectednodechanged”的方式捕获此事件。

提前致谢。

4

1 回答 1

0

以下是此链接上的一些不错的解决方案:

ASP.NET TreeView 和选择选定的节点

我喜欢这个解决方案,虽然我还没有尝试过:

TreeNode newCNode;

newCNode = new TreeNode("New Node");

newCNode.SelectAction = TreeNodeSelectAction.Select;

//now you can set the .NavigateUrl property to call the same page with some query string parameter to catch in the page_load()

newCNode.NavigateUrl = "~/ThisPage.aspx?args=" + someNodeAction

RootNode.ChildNodes.Add(newCNode);
于 2015-01-09T08:36:56.330 回答