Hi Dave!
Let me list my requirements again!!
1) I want to store the hierarchy in a sitemap file. done
2) I want to add custom attributes for each node. done
3) And store this in a session object for that user.
4) I want to edit these attributes in runtime. For ex: if the user selects a particular item in a dropdown box in one page, i need to disable/hide another page in the sitemap. For that i need to edit the "enabled" and "visible" attributes in runtime. We are using QuickRules.Net to enable/hide different links in the sitemap.
For ex: I want to do something like this:
void ActivateForm(string key)
{
SessionSiteMap.RootNode.ChildNodes[1]["enabled"] = "true";
}
Where SessionSiteMap is the copy of the original SiteMap stored in a session for this user.
5) And then use this sitemap directly with a treeview or other navigation controls.
6) We have two navigations in the website, a treeview like navigation where we do hide/disable certain links and a horizontal prev/next like wizard where we only navigate to enabled and visible links.
So all I need is a collection of sitemapnodes on which i can operate and change the attributes and store it in a session to share it across pages. As per your reply, we can change the custom attributes in a sitemapresolve event but my main problem is to remember the changes across pages.
I thought of using the sitemap class so that i can automatically fill in the sitemap contents and i can navigate through the hierarchy. But if i cannot change the custom attributes and save it in the session, i have to write a custom class which simulates this behaviour. I want to use the existing classes which provide this hierarchial behaviour and then extend that.
Any help is greatly appreciated.