1

私はツリービューとしてメニューを持っています。私がやろうとしているのは、ユーザーが別のページに移動しない限り、ユーザーが選択したツリーノードを再び選択できないようにすることです。asp.netとvbでこれを行うにはどうすればよいですか?

アップデート:

わかりましたこれまでのところ、これは私がツリーノードの選択を変更したサブで行っていることです

   ViewState(10) = TreeView1.SelectedNode

    TreeView1.SelectedNode.SelectAction = TreeNodeSelectAction.None

    If ViewState(10).valuepath <> TreeView1.SelectedNode.ValuePath Then
        TreeView1.SelectedNode.SelectAction = TreeNodeSelectAction.Select
    End If

そこの専門家は、これがうまくいかない理由を正確に知っていると確信しています. とにかく、これはエラーになりますが、選択したノードを保持する別の方法は考えられません

アップデート:

  ViewState(10) = TreeView1.SelectedNode.DataItem

    If ViewState(10) <> TreeView1.SelectedNode.DataItem Then
        TreeView1.SelectedNode.Selected = ViewState(10)
        TreeView1.SelectedNode.SelectAction = TreeNodeSelectAction.Select
    Else
        TreeView1.SelectedNode.SelectAction = TreeNodeSelectAction.None
    End If

これはまさに私が望んでいたselectaction.noneで機能しますが、ユーザーが別のツリーノードを選択したときに再度有効にするのに問題があります。

4

1 に答える 1

2

これは、将来これを必要とする人のための答えです

For Each n As TreeNode In TreeView1.Nodes
        For Each a As TreeNode In n.ChildNodes
            If a.Selected = True Then
                a.SelectAction = TreeNodeSelectAction.None
            Else
                a.SelectAction = TreeNodeSelectAction.Select
            End If
        Next
    Next
于 2012-12-10T23:19:31.153 に答える