We help IT Professionals succeed at work.

Select a Treenode from clientside or serverside

sastry_sagi
sastry_sagi asked
on
676 Views
Last Modified: 2012-05-07
Hi All,
Can i set TreeView1.SelectedValue dynamically in serverside or clientside.This is my treeview
<asp:TreeView ID="TreeView1" runat="server" onselectednodechanged="TreeView1_SelectedNodeChanged">
<nodes>
<asp:TreeNode Value="1" Text="Parent1">
<asp:TreeNode Value="11" Text="child11"/>
<asp:TreeNode Value="12" Text="child12"/>
</asp:TreeNode>
<asp:TreeNode Value="2" Text="Parent2"></asp:TreeNode>
<asp:TreeNode Value="3" Text="Parent3"></asp:TreeNode>
</nodes>
</asp:TreeView>

I want to set TreeView1.SelectedValue="11" on pageload .How can i do this?Any Suggestions.
Comment
Watch Question

Commented:
Dude this is so messsed up it makes me wanna throw a tantrem.

Anyway the property for selectednode is readonly (which is crazy) as you probably already figured out. So the only way to set the node is to loop through the treeview.nodes, check their value and if it is the value you want then set it as selected using the node.selected property.

This will only work if you have 1 level of treenodes though. If you try this on a treeview with say 3 levels of nodes you will not have success. I put together a small sample using your treeview that does a recursive check through all node levels, finds the one you want and selects it....enjoy!

PS: I didnt know if you wanted C# or VB so you got what I was working with at the time (vb)
****YOUR ASPX CODE, WITH SELECTED NODE STYLE ADDED SO WE CAN SEE WHAT HAPPENS ****
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
	<asp:TreeView ID="TreeView1" runat="server" ForeColor="Red" SelectedNodeStyle-BackColor="Green">
		<Nodes>
			<asp:TreeNode Value="1" Text="Parent1">
				<asp:TreeNode Value="11" Text="child11" />
				<asp:TreeNode Value="12" Text="child12" />
			</asp:TreeNode>
			<asp:TreeNode Value="2" Text="Parent2"></asp:TreeNode>
			<asp:TreeNode Value="3" Text="Parent3"></asp:TreeNode>
		</Nodes>
	</asp:TreeView>
	</form>
</body>
</html>
 
 
****CODE BEHIND****
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        recursiveNodeCheck(TreeView1.Nodes, "3")
    End Sub
 
    Public Sub recursiveNodeCheck(ByVal nod As TreeNodeCollection, ByVal sValue As String)
        For Each tn As TreeNode In nod
            If tn.Value = sValue Then
                tn.Selected = True
            Else
                recursiveNodeCheck(tn.ChildNodes, sValue)
            End If
        Next
    End Sub

Open in new window

Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.