asp.net - Query string paramaters for a sitemap -



asp.net - Query string paramaters for a sitemap -

i'm using vwd 2010, asp.net, c#. have sitemap works, need able link external sites , send parameters. found code looks should work, i'm missing kind of understanding or seem assuming know don't. (the other fellow seems have understood perfectly.)

revised: adding show how menu , sitedatasource declared.

<asp:sitemapdatasource runat="server" id="sitemapdatasource" showstartingnode="false" /> <asp:menu id="navigationmenu" runat="server" cssclass="menu" datasourceid="sitemapdatasource" enableviewstate="false" includestyleblock="false" orientation="horizontal" backcolor="#f7f6f3" dynamichorizontaloffset="2" font-names="verdana" font-size="0.8em" forecolor="#7c6f57" staticsubmenuindent="10px"> <dynamichoverstyle backcolor="#7c6f57" forecolor="white" /> <dynamicmenuitemstyle horizontalpadding="5px" verticalpadding="2px" /> <dynamicmenustyle backcolor="#f7f6f3" /> <dynamicselectedstyle backcolor="#5d7b9d" /> <dynamicitemtemplate> <%# eval("text") %> </dynamicitemtemplate> <statichoverstyle backcolor="#7c6f57" forecolor="white" /> <staticmenuitemstyle horizontalpadding="5px" verticalpadding="2px" /> <staticselectedstyle backcolor="#5d7b9d" /> </asp:menu>

note menu works extent correctly displays info in web.sitemap.

here's link original code: http://weblogs.asp.net/jgaylord/adding-querystring-parameters-to-the-sitemapnode

my sitemap works, doesn't seem invoking extended sitemapprovider. i'm sure provider doesn't need...at point i'm trying create sure it's getting invoked. so, set breaks in code in initialize() , in the smartsitemapprovider_sitemapresolve() routine. i'm trying invoke when think should invoke @ point. can't modify if can't debug it, , can't debug it, if can't invoked.

i'm using c# code , have duplicated below. have set in it's own class file @ top level called extendedsitemapprovider.cs

here's section web.config i'm using.

<sitemap enabled="true" defaultprovider="extendedsitemapprovider"> <providers> <clear/> <add name="extendedsitemapprovider" type="configuration.extendedsitemapprovider" sitemapfile="web.sitemap" securitytrimmingenabled="true" /> </providers> </sitemap>

the c# code site.

using system; using system.collections.generic; using system.collections.specialized; using system.linq; using system.web; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; using system.web.sessionstate; namespace configuration { public class extendedsitemapprovider : xmlsitemapprovider { public override void initialize(string name, namevaluecollection attributes) { base.initialize(name, attributes); this.sitemapresolve += smartsitemapprovider_sitemapresolve; } static sitemapnode smartsitemapprovider_sitemapresolve(object sender, sitemapresolveeventargs e) { if ((sitemap.currentnode == null)) homecoming null; sitemapnode temp = sitemap.currentnode.clone(true); sitemapnode tempnode = temp; while (tempnode != null) { string qs = getquerystring(tempnode, e.context); if (qs != null) { tempnode.url += qs; } tempnode = tempnode.parentnode; } homecoming temp; } private static string getquerystring(sitemapnode node, httpcontext context) { if (node["querystringtoinclude"] == null) homecoming null; namevaluecollection values = new namevaluecollection(); string[] vars = node["querystringtoinclude"].split(",".tochararray()); foreach (string s in vars) { string var = s.trim(); if (context.request.querystring[var] == null) continue; values.add(var, context.request.querystring[var]); } if (values.count == 0) homecoming null; homecoming namevaluecollectiontostring(values); } private static string namevaluecollectiontostring(namevaluecollection col) { string[] parts = new string[col.count]; string[] keys = col.allkeys; (int = 0; <= keys.length - 1; i++) { parts[i] = keys[i] + "=" + col[keys[i]]; } homecoming "?" + string.join("&", parts); } } }

it looks though should work. set breakpoint in page_load, , when nail it, have @ navigation command properties. instance, come in sitemappath1 in immediate window. provider property either xmlsitemapprovider, or, if it's working, extendedsitemapprovider.

if breakpoint in page_load not nail either, answer--you're somehow not running in debug mode. :)

asp.net sitemap querystringparameter sitemapprovider

Comments

Popular posts from this blog

php - Android app custom user registration and login with cookie using facebook sdk -

django - Access session in user model .save() -

php - .htaccess Multiple Rewrite Rules / Prioritizing -