Extended TreeView
page 4 of 10
by G. Mohyuddin
Average Rating: 
Views (Total / Last 10 Days): 44544/ 88

Binding with Multiple Sitemaps

ASP.NET 2.0 TreeView is bindable with one sitemap per website only named with Web.sitemap. The ASP.NET Sitemap Provider only looks for a site map with this name. The only way to use multiple sitemaps is to nest the sitemaps, having the parent with same name, Web.sitemap. No matter even if you will add another TreeView control on page, it again expects the Web.sitemap. It does not work in salutations where we want to customize the look of a tree view according to the category. The Extended TreeView works great for us and overcomes this problem. Now we can use as many sitemaps as we wish in a website (without nesting) and can bind them with their corresponding XTreeViews. 

To work with multiple sitemaps follow these steps.

Add a new sitemap to your web site and name it, say CommonUser.sitemap. Save it in any folder, preferably App_Data for security reasons. This will not allow the client to see it. All contents of this folder are inaccessible to the client.  

Add nodes and set their properties in the sitemap file as shown below.

Listing 2

<?xml version="1.0" encoding="utf-8" ?>
  <siteMapNode value="~/Home.aspx" title="Home">
  <siteMapNode  value="~/Default.aspx"  title="User Tasks" >
    <siteMapNode value="~/Profile.aspx" title="View" >
    <siteMapNode value="~/Profile.aspx" title="Profile" />
    <siteMapNode value="~/WeeklyWorkTimeDetail.aspx" title="Work Time Detail" >
        <siteMapNode value="~/WeeklyWorkTimeDetail.aspx" title="Weekly"/>
         <siteMapNode value="~/MonthlyWorkTimeDetail.aspx" title="Monthly"/>
        <siteMapNode value="~/YearlyWorkTimeDetail.aspx" title="Yearly"/>
    <siteMapNode value="~/WarningComments.aspx" title="Warning and Comments" />

DO NOT use URL property of node, use Value property instead. By using URL browser, it transfers to the next page without making a server round trip that does not allow saving the expansion sate of the nodes on server. Yet by using VALUE property the page is redirected; a server round trip provides a chance to save the expansion state.

Drag the XTreeView control from the control bar and drop on the page.

Listing 3

<cc1:XTreeView ID="XTreeView1" runat="server">

From the Property pane you will see a new property category Sitemap, it has one property Sitemap. Browse and select it.  That is it. The following image shows this.

Figure 2

For more sitemaps repeat the steps listed above.

View the page in browser you will see that all TreeView are not only successfully bound with their corresponding sitemaps, but also persist their expansion state.

Figure 3

View Entire Article

User Comments

Title: hi   
Name: masoud
Date: 2012-05-28 6:35:45 AM
thank for you
Title: hi   
Name: enes
Date: 2011-05-18 8:22:06 AM
thats realy good artical thank you .. But when i try with mdb it's not support have can i do ..thanks..
Title: Thanks alot..   
Name: vikram dhawan
Date: 2010-10-20 6:52:17 AM
Thanks,i was looking for it the same thing.
God bless you..
keep writing more articles...
thanks again...
Title: Ok   
Name: Alberto
Date: 2010-07-30 4:45:45 PM
Hello Mahr
your control is ok but I need it to be strong signed. I have to put the control in sharepoint page and, as you know, sharepoint does not like not signed assembly.
Can you help me?
Title: Code will not work   
Name: Tiger Woods
Date: 2010-04-06 1:54:17 PM
FYI, if you use ImageSet="Simple"
Title: Where is the ExtendedXControls Code?   
Name: OutOfTouch
Date: 2010-02-20 5:43:03 PM
Where is the code for the TreeView? All I see is a sample web using the exteneded controls dll?
Title: Expand Node on Mouse over   
Name: Mak
Date: 2008-08-07 5:14:46 PM
I need a TreeView who's node will expand on mouse over.

Any View's ??
Title: SelectedIndex   
Name: Mark
Date: 2008-02-18 9:37:57 AM
Hi Mahr,
Thanks for the reply. I read the article and it was very helpful in terms of learning the basics on how to extend a control. Thank you. The thing is that with the treeview webcontrol, as you mention in your article, is missing certain mission-critical functionality, such is when posting back it not showing the selected noded in the window, so each time the user has to scroll down. That's crazy-making. I looked at your extendedtreeview.dll in reflector to see if I could figure out how to get it to work properly when I extend the control, but to be honest, I couldn't put it together. Could you help me with this? It would be awesome if you can get me going. The only thing I care about at the moment with treeview is this retarded postback issue. Everything else I have working fine. Thank you!
Title: Re: It Dont Work   
Name: Mahr G. Mohyuddin
Date: 2008-01-26 1:02:32 AM

You have not read the artcile
You have not used the "value" property for keeping url. DONT use url property.
Title: It Dont Work   
Name: James
Date: 2008-01-25 12:20:29 PM

Downloaded and replaced an existing tree view with yours. Works exactly as existing tree view, that’s the problem, it is not remembering its state.

Is there a website, page or control setting I need to set?
Title: Re: extendedtreeview.dll   
Name: Mahr G. Mohyuddin
Date: 2008-01-17 2:19:41 PM
Hi Mark!
My another article "Developing Custom Controls Part 1" has recently been published. You may view it wwww.aspalliance.com/1526. It explains in detail the types of custom cotrols and the steps in detail required to develope custom controls ( extended one in first part , ExtendedTextBox ). although I have not made exended treeview as an example in this yet reading this article will let you know all required steps and their detail for extending any control.
Title: extendedtreeview.dll   
Name: mark
Date: 2008-01-17 8:05:22 AM
Hi Mohyuddin,
Very cool. Just wondering, you mention "This article does not explain how to extend a TreeView control. That will be covered in a separate article"... just wondering, have you had a chance to publish that one? If so, could you post a link to it? That would be great. Thanks!
Title: Re: NO SaveExpandedState property   
Name: G. Mohyuddin
Date: 2007-12-06 3:06:40 AM
Hi Mike,

Actually the Extended Treeview saves its state by default you won't need set any property. Earlier the property SaveExpandedState was there later it was excluded and I am sorry I could not remove it from article's text.

Do let me know, if you have any concern regarding this.

Title: G. Mohyuddin   
Name: Re: Problem
Date: 2007-06-22 6:13:47 AM

You dont need to look for SaveExpansionState property. By default it supports treeview sate saving. Initially I provided this to turn it off/on but later i intentionally removed from code but forgot to remove it from documentation. use it u dont need to set any property for expansion sate saving.
Title: Problem   
Name: Nick
Date: 2007-06-22 4:21:53 AM
Hi Just downloaded this,just what I need, SaveExpansionState, except this feature is missing. I have gone through all the options and cannot find the feature. According to your info above it should be between populatenodesfromclient and showcheckboxes, but it is not there. Help !!!!!
Title: Re: Great Work   
Name: G. Mohyuddin
Date: 2007-05-23 9:12:36 AM
Thanks, Amir Mughal!
Title: Great Work   
Name: M Aamir Mughal
Date: 2007-05-23 8:57:13 AM
great work man :)
keep it up ... (Y)
Title: Re:Nice Work   
Name: G. Mohyuddin
Date: 2007-05-23 2:32:35 AM
Thanks! Waheed Aslam.
Title: Nice Work   
Name: Waheed Aslam Ghuman
Date: 2007-05-23 2:31:15 AM
Great work G. Mohyuddin. Features added to treeview are really very useful and very much desired by most developers

Product Spotlight
Product Spotlight 

Community Advice: ASP | SQL | XML | Regular Expressions | Windows

©Copyright 1998-2024 ASPAlliance.com  |  Page Processed at 2024-05-29 8:35:30 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search