npl77
asked on
Select A Node ASP.NET TreeView Control Programatically
I am creating treeview nodes dynamically in code when I create a node I set the
newNode.SelectAction = TreeNodeSelectAction.Selec t
which makes the node selectable and when I manually click on a node the TreeView1.SeletedIndexChan ged fires as expected.
The problem comes in in the Search functionality. The code to search for a name locates the proper name in the treeview and changes its font color to lime which is the functionality I want.
What I need the search to do it not only change the font color (which it does already) but also select the node and fire the SelectedNodeChanged event programatically. I added "node.Select() to my code but it does nothing.
Can anyone help. Thanks in advance.
newNode.SelectAction = TreeNodeSelectAction.Selec
which makes the node selectable and when I manually click on a node the TreeView1.SeletedIndexChan
The problem comes in in the Search functionality. The code to search for a name locates the proper name in the treeview and changes its font color to lime which is the functionality I want.
What I need the search to do it not only change the font color (which it does already) but also select the node and fire the SelectedNodeChanged event programatically. I added "node.Select() to my code but it does nothing.
Can anyone help. Thanks in advance.
Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSearch.Click
For Each node As TreeNode In TreeView1.Nodes
If (node.Text = txtSearch.Text) Then
node.Text = "<span style='color: lime'>" & node.Text & "</span>"
ExpandAllNodes(node)
node.Select()
ElseIf (node.ChildNodes) IsNot Nothing Then
CheckChildNodes(node)
End If
Next
TreeView1.ExpandAll()
End Sub
Private Sub CheckChildNodes(ByVal node As TreeNode)
For Each childNode As TreeNode In node.ChildNodes
If childNode.Text = txtSearch.Text Then
childNode.Text = "<span style='color: lime'>" & childNode.Text & "</span>"
ExpandAllNodes(childNode)
childNode.Select()
ElseIf childNode.ChildNodes IsNot Nothing Then
CheckChildNodes(childNode)
End If
Next
End Sub
Private Sub ExpandAllNodes(ByVal node As TreeNode)
Dim nodeParent As TreeNode = node.Parent
While (nodeParent.Parent IsNot Nothing)
nodeParent = nodeParent.Parent
End While
nodeParent.ExpandAll()
End Sub
Private Sub TreeView1_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.SelectedNodeChanged
Label1.Text = "Hi " + TreeView1.SelectedNode.Text
End Sub
ASKER
How do you add the call can you show me? Not too good with event handling
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks!
childNode.Select()
' add the call here I will put as a separate method (DoSelectedNodeChanged(ByV
If you select the node in code, the TreeView1_SelectedNodeChan