Select a Treenode from clientside or serverside

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.
sastry_sagiAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ddayx10Commented:
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

0
ddayx10Commented:
PSS: Make sure you dont do this before you have bound your control. In your sample it was manually built so it doesnt matter, but if you add/remove to the treeview using code behind then you cant check/set the selectedvalue until after you finish manipulating it.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP.NET

From novice to tech pro — start learning today.