1

ノードを 2 回選択したときに SelectedNodeChanged イベントを発生させる方法はありますか。ツリーの選択したノードを表示する必要があるため、コード「treeview.SelectedNode.Selected = false」を使用できませんが、同時に、ノードのクリックをキャプチャできるようにイベントが必要です。そうする方法はありますか?

前もって感謝します

4

2 に答える 2

1

できることは、コードを prerender のような別のイベントに配置することです。たとえば、ブール型のクラス変数 blnIsChanged を使用することで、選択が変更されたかどうかを判断できます。この値のデフォルト値は false で、SelectedNodeChanged イベントでのみ true に設定されるため、blnIsChanged = false の場合にコードを実行できる if ステートメントを prerender (または SelectedNodeChanged イベントの後に発生するイベント) に含めることができます。 it = true の場合は何もありません。

例:

Partial Class YourPageWithaAtreeView  
    Inherits System.Web.UI.Page  
Dim _blnSelectionChanged as Boolean = false



Protected Sub MyTree_SelectedNodeChanged(byval sender as object, byval e as eventargs) handles MyTree.SelectedNodeChanged  
   _blnSelectionChanged = true //The selection changed
End Sub
Protected Sub MyTree_PreRender(byval sender as object, byval e as eventargs) handles MyTree.PreRender
    if _blnSelectionChanged = false Then
      //Because the boolean is not true that means that 
      //the selected node didn't change
      //insert the code you want to execute when the user
      //clicks the already selected node
    end if
End Sub
于 2011-04-14T17:10:30.150 に答える
0

はい、標準の TreeView コントロールに OnNodeClick() イベントがないのは本当に面倒です。

このイベントをサポートするTelerikのバージョン (「RadTreeView」) を使用することになりました。

もう 1 つの方法は、ここで説明されているように、ラウンド アバウトな方法で独自のハンドラーを作成することです

于 2011-04-14T17:13:16.430 に答える