动态修改内存中的站点地图节点2008-03-06 16:04经常我们会遇上类似News.asp?id=12&page=2这样的URL格式,而我们在站点地图文件中不可能每一个都写在文件中,这样就需要在内存中根据需要动态的添加节点.
protected void Page_Load(object sender, EventArgs e)
{//首先添加一个事件,在访问CurrentNode节点时触发;
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve);
}
SiteMapNode SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
{//获到当前节点副本,并复制上层节点
SiteMapNode CurrentNode = SiteMap.CurrentNode.Clone(true);
SiteMapNode TempNode = CurrentNode;
int id = nid();
int page = npage();
if (id > 0)
{
TempNode.Url = TempNode.Url + "?id=" + id.ToString();
}
if(id>0&page>=0)
{
TempNode.Url=TempNode.Url + "&page=" + page.ToString();
}
else if(page>=0)
{
TempNode.Url=TempNode.Url + "?page=" + page.ToString();
}
return TempNode;
}
private int nid()
{
return 12;
}
private int npage()
{
return 2;
}