protected void Page_Load(object sender, EventArgs e)
{
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve);
this.LoadData();
}
{
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve);
this.LoadData();
}
private SiteMapNode SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
{
SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);
Category curCategory = (Category)e.Context.Session["Category"];
Article curArticle = (Article)e.Context.Session["Article"];
NavigatorState curNavigatorState = NavigatorState.First;
string curPageName = e.Context.Request.AppRelativeCurrentExecutionFilePath.Substring(2).ToUpper();
switch (curPageName)
{
case "INDEX.ASPX":
{
curNavigatorState = NavigatorState.First;
break;
}
case "CATEGORYLIST.ASPX":
{
curNavigatorState = NavigatorState.Category;
currentNode = CreateNodes(currentNode, curCategory);
break;
}
case "ARTICLEVIEW.ASPX":
{
curNavigatorState = NavigatorState.Article;
currentNode = CreateNodes(currentNode, curCategory);
currentNode = CreateChildNode(currentNode,
curArticle.ArticleID.ToString(),
"ArticleView.aspx?ArticleID=" + curArticle.ArticleID,
"全文");
break;
}
default:
{
curNavigatorState = NavigatorState.First;
break;
}
}
return currentNode;
}
{
SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);
Category curCategory = (Category)e.Context.Session["Category"];
Article curArticle = (Article)e.Context.Session["Article"];
NavigatorState curNavigatorState = NavigatorState.First;
string curPageName = e.Context.Request.AppRelativeCurrentExecutionFilePath.Substring(2).ToUpper();
switch (curPageName)
{
case "INDEX.ASPX":
{
curNavigatorState = NavigatorState.First;
break;
}
case "CATEGORYLIST.ASPX":
{
curNavigatorState = NavigatorState.Category;
currentNode = CreateNodes(currentNode, curCategory);
break;
}
case "ARTICLEVIEW.ASPX":
{
curNavigatorState = NavigatorState.Article;
currentNode = CreateNodes(currentNode, curCategory);
currentNode = CreateChildNode(currentNode,
curArticle.ArticleID.ToString(),
"ArticleView.aspx?ArticleID=" + curArticle.ArticleID,
"全文");
break;
}
default:
{
curNavigatorState = NavigatorState.First;
break;
}
}
return currentNode;
}
private SiteMapNode CreateNodes(SiteMapNode currentNode, Category curCategory)
{
if (curCategory != null)
{
List<Category> curCategoryTree = CategoryData.GetCategoryTree(curCategory.CategoryID);
SiteMapNode curRootNode = SiteMap.CurrentNode.Clone(true);
foreach (Category category in curCategoryTree)
{
curRootNode = CreateChildNode(curRootNode,
category.CategoryID.ToString(),
"CategoryList.aspx?CategoryID=" + category.CategoryID,
category.CategoryName);
currentNode = curRootNode;
}
}
return currentNode;
}
{
if (curCategory != null)
{
List<Category> curCategoryTree = CategoryData.GetCategoryTree(curCategory.CategoryID);
SiteMapNode curRootNode = SiteMap.CurrentNode.Clone(true);
foreach (Category category in curCategoryTree)
{
curRootNode = CreateChildNode(curRootNode,
category.CategoryID.ToString(),
"CategoryList.aspx?CategoryID=" + category.CategoryID,
category.CategoryName);
currentNode = curRootNode;
}
}
return currentNode;
}
SiteMapNode CreateChildNode(SiteMapNode rootNode, string key, string url, string title)
{
SiteMapNodeCollection childNodes = new SiteMapNodeCollection();
SiteMapNode newNode = new SiteMapNode(SiteMap.Provider, key, url, title);
newNode.ParentNode = rootNode;
childNodes.Add(newNode);
rootNode.ChildNodes = childNodes;
return newNode;
}
{
SiteMapNodeCollection childNodes = new SiteMapNodeCollection();
SiteMapNode newNode = new SiteMapNode(SiteMap.Provider, key, url, title);
newNode.ParentNode = rootNode;
childNodes.Add(newNode);
rootNode.ChildNodes = childNodes;
return newNode;
}