This is a migrated thread and some comments may be shown as answers.

RadTreeView, How to set the focus to a selected node on postbacks?

1 Answer 243 Views
TreeView
This is a migrated thread and some comments may be shown as answers.
Thayu
Top achievements
Rank 1
Thayu asked on 19 Apr 2011, 12:00 PM
Greetings,

We are dynamically creating a Menu using RadTreeView control and each node is binded with .aspx page. When a node is clicked, the whole page postbacks and redirects to the assigned .aspx page and the RadTreeView control(Menu) will be recreated. As the page postbacks, the selected node losts its focus and all the nodes are getting collapsed.

As per our requirement, We need to set the focus on the selected node and its parent node to be expanded, even if the page postbacks. Please help us on this.

We tried getting the selected node value on RadTreeView_NodeClick event and this event is not firing consistantly.

FYI, we are binding the RadTreeView control using LINQ on Page_Load event and below is the code for the same.
=======================

rtvMenu.Nodes.Clear();

rtvMenu.DataTextField =

 

"MENU_NAME";

 

 

rtvMenu.DataValueField =

 

"MENU_ID";

 

 

rtvMenu.DataFieldID =

 

"MENU_ID";

 

 

rtvMenu.DataFieldParentID =

 

"PARENT_MENU_ID";

 

 

rtvMenu.DataNavigateUrlField =

 

"LANDING_PAGE";

 

 

rtvMenu.DataSource = v_Menu;

 

rtvMenu.DataBind();

=======================

1 Answer, 1 is accepted

Sort by
0
Nikolay Tsenkov
Telerik team
answered on 21 Apr 2011, 07:27 PM
Hi Thayu,

The fact every node is associated to a page, means that by being on a certain page you should be able to determine the clicked node using the url of the page - you can get all nodes and iterate through them searching for a specific navigateUrl (to get the nodes - tree.get_allNodes(), to check for the same url - node.get_navigateUrl()). Then having the node, you only need to iterate through the parent's expanding them (use the level of the node as a limiter for the for-loop - for (var i = 0; i < node.get_level(); i++)).

Another way to achieve this is to save the clicked node in a cookie or the Session. You can check the last post at this thread, how you can implement the cookie solution: http://www.telerik.com/community/forums/aspnet-ajax/treeview/scrollintoview-with-ajaxified-control-doesn-t-work.aspx


Regards,
Nikolay Tsenkov
the Telerik team

Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

Tags
TreeView
Asked by
Thayu
Top achievements
Rank 1
Answers by
Nikolay Tsenkov
Telerik team
Share this question
or