I have a Sitemap and I am planning to query it programmatically and filter it, something likefrom SiteMapNode smnode in SiteMap.RootNode.GetAllNodes()
..do somethingMy question is how do I approach the above. I mean on what event can I query it and how to then bind it to the TreeView?
I have a web app with treeview based on a fairly simple sitemap. The only catch is that I want to be able to remove nodes based on a user's role. We are NOT using the asp.net security so I can't take advantage of the built-in function.When I put code in the master page load event (or anywhere else it seems), there seems to be nothing in the treeview object yet, so I can't make changes to it.
I have a simple Treeview based on my SiteMap with Security Trimming turned on.
Rather than defining a fixed ExpandedDepth in the Treeview, is it possible to add a property to the SiteMap that indicates which nodes should be expanded?
Where SiteMenu is an Asp:menu control. But for some reason I'm getting a menu with one element with name "siteMap" and a child element with name "siteMapNode".
I would like to have only one element (rappresented by the <SiteMapNode> xml tag ) with title "default". what I'm doing wrong?
Builder ( Main UL , without href ) Create Builder ( Navigates to CrtBuilder.aspx) Remove Builder ( Navigates to RmvBuilder.aspx) Supplier (Main UL) Create Supplier ( Navigates to CrtSupplier.aspx ) Remove Supplier Navigates to RmvSupplier.aspx
Now if a user clicks on CreateBuilder Menu then the user must see the site map in my breadcrumb like this :
Home > Builder > Create Builder
same way for supplier :
Home > Supplier > Create Supplier
remember ( on clicking Home the page must navigates to abc.aspx)
I would to like to know about how can i bind the TreeView with multiple tables
E.g.
i have a table
Class -- fields are [id,class] Term -- fields are [id,classid,terms] subject -- fields are [id,classid,subject,terms] topic -- fields are [id,classid,subjectid,termsid,topic]
[all joined with Foreign keys]
my need the following output requirement.
[Code]...
MCA is a parent class and under MCA there are Terms and under Terms there are Subjects and under Subjects there are Topics according to Topics wise. My requirement is when i Clicked on the MCA it will show Terms and after clicked on any Terms it display Subjects and after clicked on the Subject it display Topics and after clicked on topic it must display contents according to topic-wise.
I have a Table in SQL Database, it only has one sell and its xml type.
I need to bind that xml to TreeView Control, and since I can't bind use sqldatasource as a datasource for the treeview and i cant use the XmlDataSource to read from the database...
I want to bind TreeView control with List object. This List object will be creatd by data that got from database.But, the problem is I can't bind this TreeView with List. It shows the exception "HierarchicalDataBoundControl only accepts data sources that implement IHierarchicalDataSource or IHierarchicalEnumerable."
I want to bind a treeview control so that it display exactly like outlook inbox. How can I do that? Note: All data are coming from a single sql table even though you can create to statement to get the child and parent.
We are getting this error message when we try to click the link in the menu to go to Report Server:
Source Error: Line 31: <siteMapNode title="Reports" description="Reports"> Line 32: Line 33: <siteMapNode url="https://ffxsqldgc01.ffx.co.fairfax.va.us/Reports/Pages/Folder.aspx?ItemPath=%2fDPZ&ViewMode=List" title="View Reports" description="Click here to view the reports" /> Line 34: </siteMapNode> Line 35:
I tried to add after the &, as it was suggested on one of the forum but it did not work. Any other ideas.
I've been having some production runtime errors that I don't fully understand. This has happened to us on a couple different ASP.NET 4.0 Web Sites (shudders - yes, I know - we're porting it to MVC but that's taking some time).
First of all, we have never been able to reproduce this issue in development/QA environments. Secondly, upon deployment, the issue seems to be non-existent. Sometimes the issue manifests within a day or two of deployment and other times the deployment will be live for a month without it manifesting at all. However, once it manifests, then ANY page viewed under the web site causes the error. Lastly, this problem seemed to only come up once we migrated to .NET 4.0. We started at 2.0, a year ago upped to 3.5, and recently upped to 4.0 with this solution and most child projects.
The error:
Could not find the sitemap node with URL '~/Default.aspx'.
A simplified version of our sitemap (with some names changed and uninteresting nodes removed) is as follows:
I have confirmed in all of the SiteMaps that there is a node with url="~/Default.aspx" with roles="*" (which includes public/anonymous access), so I am very confused as to why this problem occurs.
SiteMap does not have a node for Default.aspx. All of them do. SiteMap's Default.aspx node is not accessible for security reasons to the current user/role. They're all accessible to anonymous users and this problem even exists for super admin users. Passed-in URL contains querystrings (Default.aspx?abcd). I don't know if this is a problem (I sure would hope not) but once the problem manifests itself, I can handwrite the URL with no querystrings and the problem still exists.
SiteMap changes. It doesn't Service's permissions to the sitemap file. The sitemap works perfectly fine after a deployment, so unless permissions are changed in a way that IISRESET fixes, then this is not an issue. The worker process becomes globally corrupt. I don't think so. We have ~12 web sites all in the same app pool and the problem always stays confined within a single web site. Also, we have yet to have this happen to more than a single web site at a time although it has manifested itself in 4 different ones so far.
However, now I want to be able to create multiple web.sitemap files, and then programmatically determine which web.sitemap file to use, but I can't seem to find out how to do this. I'm assuming I could either create one custom SiteMapProvider that can perform the logic to determine which web.sitemap file to load, or I have multiple providers, each one with the SiteMapFile property set to a specific *.sitemap file, and then switch providers programmatically before I access SiteMap.RootNode.
I am creating a CacheDependency on the file that my SiteMap provider uses. I would like to get the name of the file from my sitemap provider instead of hard coding it. Is there a way?
Edit
Duh, I forgot to mention: XmlSiteMapProvider that comes with ASP.NET
Edit 2
Reflector shows a private member field called _filename that isn't exposed in any way as far as I can tell.
How would I programatically reference a .sitemap file that is not the root web.sitemap file? I have a file called research.sitemap in a folder a level under root. I want to refernce this file in my code behind like his: SiteMapNode m1 = SiteMap.RootNode (but since this isnt web.sitemap in the root, I dont know how to get access to it).
I have a second level node that goes onto two lines. The first line indents 15px as is set by the class for node level 2. The seond line kicks back to the same level as 1st level nodes. Here's what I mean:
Periodically a rash of occurrences of the following error happen. I believe they're the result of hack attempts. Whether that's the case or not, my question is how can I handle the error? I want to avoid unhandled exceptions. The TreeView control is just a standard .Net TreeView control, not a custom one. If you suggest a code solution, please code it in VB.Net as that's what I'm using.
Message: Input string was not in a correct format.
Stack Trace: at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Web.UI.WebControls.TreeView.LoadPostData(String postDataKey, NameValueCollection postCollection) at System.Web.UI.WebControls.TreeView.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)