日期:2014-05-18  浏览次数:20413 次

帮我解决个SiteMapPath的问题吧
我的问题可能说起来比较麻烦,因为我使用GOOGLE   baidu搜索了很多也没有找到答案

我的网站是一个购物网站,所有的页面继承自BasePage,在BasePage里有如下代码

  public   class   BasePage:System.Web.UI.Page
{
                public   BasePage()
                {
                        SiteMap.SiteMapResolve   +=   new  
SiteMapResolveEventHandler(SiteMap_SiteMapResolve);
                }
                //由于在站点地图中使用了省略文件名的URL,所以在这里要对URL到站点地图文件里查询做些修改,去掉默认的default.aspx。
                public     SiteMapNode   SiteMap_SiteMapResolve(object   sender,  
SiteMapResolveEventArgs   e)
                {
                        //这里有一些代码根据页面URL参数的不同来设置SiteMapNode的Title和Url
                }
}
但是现在又有一个页面同样要自定义SiteMapNode,虽然可以也放到BasePage的SiteMap_SiteMapResolve方法里,但是其中的一些参数需要多次查询数据库,所以我希望能在这个页面里再增加个
SiteMap。SiteMapResolve事件,在这个页面中写
protected   void   Page_Load(object   sender,   EventArgs   e)
{
        SiteMap.SiteMapResolve   +=   new  
SiteMapResolveEventHandler(SiteMap_SiteMapResolveProduct);
}
private   SiteMapNode   SiteMap_SiteMapResolveProduct(object   sender,  
SiteMapResolveEventArgs   e)
{
        //处理代码
}
但是我发现这样做,SiteMap_SiteMapResolveProduct根本没有执行,请问像我这样的问题如何才能很好的解决  



------解决方案--------------------
好像个google自己就有个sitemap的工具 lz去看看呢
------解决方案--------------------
http://msdn.microsoft.com/msdnmag/issues/06/02/WickedCode/
------解决方案--------------------
public class BasePage:System.Web.UI.Page
{
public BasePage()
{
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve);
}

public SiteMapNode SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
{
return PageSiteMapResolve(sender, e);
}

protected virtual SiteMapNode PageSiteMapResolve(object sender, SiteMapResolveEventArgs e)
{
//这里有一些代码根据页面URL参数的不同来设置SiteMapNode的Title和Url
}

}

子页里面

protected override SiteMapNode PageSiteMapResolve(object sender, SiteMapResolveEventArgs e)
{
//处理代码
}

------解决方案--------------------
jf up 学习