谁能够提供一个能够使用的代码来看看?
首先在Page_Load中添加SiteMapResolve事件:
protected void Page_Load(object sender, EventArgs e)
{
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(this.ExpandForumPaths);
}
然后在事件处理函数中这样做:
private SiteMapNode ExpandForumPaths(Object sender, SiteMapResolveEventArgs e)
{
SiteMapNode currentNode = SiteMap.CurrentNode.Clone();
SiteMapNode tempNode = currentNode;
// Obtain the recent IDs.
int forumGroupID = GetMostRecentForumGroupID();
int forumID = GetMostRecentForumID(forumGroupID);
int postID = GetMostRecentPostID(forumID);
if(0 != postID)
{
tempNode.Url = tempNode.Url + "?BID=" + postID.ToString();
}
if((null != (tempNode = tempNode.ParentNode)) && (0 != forumID))
{
tempNode.Url = tempNode.Url + "?TOPIC_ID=" + forumID.ToString();
}
if ((null != (tempNode = tempNode.ParentNode)) &&(0 != forumGroupID))
{
tempNode.Url = tempNode.Url + "?ForumGroupID=" + forumGroupID.ToString();
}
return currentNode;
}
在实际使用时,SiteMapNode currentNode = SiteMap.CurrentNode.Clone();这一句出错,大意是CurrentNode是空值。
另外,currentNode又没有使用过,返回它有用吗?