Solved

Select a Treenode from clientside or serverside

Posted on 2009-06-29
2
615 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.
0
Comment
Question by:sastry_sagi
  • 2
2 Comments
 
LVL 20

Expert Comment

by:ddayx10
ID: 24742574
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
 
LVL 20

Accepted Solution

by:
ddayx10 earned 500 total points
ID: 24742585
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

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now