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 に答える