62,272
社区成员
发帖
与我相关
我的任务
分享using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using NopSolutions.NopCommerce.BusinessLogic.Categories;
using NopSolutions.NopCommerce.BusinessLogic.Products;
using NopSolutions.NopCommerce.BusinessLogic.SEO;
using NopSolutions.NopCommerce.Common.Utils;
using NopSolutions.NopCommerce.Common.Utils;
using NopSolutions.NopCommerce.BusinessLogic.Media;
using NopSolutions.NopCommerce.BusinessLogic.Configuration.Settings;
namespace NopSolutions.NopCommerce.Web.Modules
{
// public partial class NavMenu : System.Web.UI.UserControl //BaseNopUserControl
public partial class NavMenu : BaseNopUserControl
{
#region Handlers
protected void Page_Load(object sender, EventArgs e)
{
//------------
}
#endregion
#region Overrides
protected override void CreateChildControls()
{
if (!this.ChildControlsCreated)
{
CreateMenu();
base.CreateChildControls();
ChildControlsCreated = true;
}
}
#endregion
#region Utilities
//Menu NavigationMenu = null;
protected void CreateMenu()
{
MenuItem me = new MenuItem();
NavMenu2.Orientation = Orientation.Vertical;
List<Category> breadCrumb = null;
Category currentCategory = CategoryManager.GetAllCategories()[0];
if (currentCategory != null)
breadCrumb = CategoryManager.GetBreadCrumb(currentCategory.CategoryId);
else
breadCrumb = new List<Category>();
CreateChildMenu(breadCrumb, 0, currentCategory, 0);//创建父菜单
}
MenuItem MainMenuItem = null;
MenuItem SubMenuItem = null;
MenuItem threeMenuItem = null;
protected void CreateChildMenu(List<Category> breadCrumb, int rootCategoryID, Category currentCategory, int level)
{
int padding = level++;
string xie = padding.ToString();
foreach (Category category in CategoryManager.GetAllCategoriesByParentCategoryId(rootCategoryID))
{
string URL = SEOHelper.GetCategoryUrl(category.CategoryId);
string CategoryName = Server.HtmlEncode(category.Name);
string ImgURL = PictureManager.GetPictureUrl(category.PictureId, SettingManager.GetSettingValueInteger
("Media.Category.ThumbnailImageSize", 15), false);
if (padding > 0)
{
//SubMenu
SubMenuItem = CreateMenuItem(CategoryName, URL, CategoryName);
// Add the submenu items to the ChildItems
// 收集根菜单项。
MainMenuItem.ChildItems.Add(SubMenuItem);
// SecondNode.ChildNodes.Add(SubMenuItem);
}
else
{ //MainMenu
MainMenuItem = CreateMenuItem(category.Name, URL, CategoryName, ImgURL);
NavMenu2.Items.Add(MainMenuItem);
//NavigationMenu.
// TV.Nodes.Add(FirestNode);
}
for (int i = 0; i <= breadCrumb.Count-1; i++)
CreateChildMenu(breadCrumb, category.CategoryId, currentCategory, level);
string ll = category.CategoryId.ToString();
Label2.Text =ll;
}
//phCategories.Controls.Add(NavigationMenu);
}
MenuItem CreateMenuItem(String text, String url, String toolTip, String ImageUrl)
{
//创建一个新的MenuItem对象
MenuItem mainMenuItem = new MenuItem();
// 设置菜单项属性的对象使用
// 指定参数
mainMenuItem.Text = text;
mainMenuItem.NavigateUrl = url;
mainMenuItem.ToolTip = toolTip;
// menuItem.ImageUrl = ImageUrl;
mainMenuItem.PopOutImageUrl = ImageUrl;
mainMenuItem.Value = text;
return mainMenuItem;
}
MenuItem CreateMenuItem(String text, String url, String toolTip)
{
// Create a new MenuItem object.
MenuItem SubMenuItem = new MenuItem();
// 设置MenuItem的对象使用的属性
// the specified parameters.
SubMenuItem.Text = text;
SubMenuItem.NavigateUrl = url;
SubMenuItem.ToolTip = toolTip;
// menuItem.ImageUrl = ImageUrl;
SubMenuItem.Value = text;
return SubMenuItem;
}
MenuItem CreateMenuItem(String text, String url)
{
// Create a new MenuItem object.
MenuItem threeMenuItem = new MenuItem();
// 设置MenuItem的对象使用的属性
// the specified parameters.
threeMenuItem.Text = text;
threeMenuItem.NavigateUrl = url;
// threeMenuItem.ToolTip = toolTip;
// menuItem.ImageUrl = ImageUrl;
threeMenuItem.Value = text;
return threeMenuItem;
}
}
}
#endregion
/// <summary>
/// Gets all categories获取所有分类
/// 获取所有分类
/// </summary>
/// <returns>Categories</returns>
public static List<Category> GetAllCategories()
{
bool showHidden = NopContext.Current.IsAdmin;
return GetAllCategories(showHidden);
}
/// <summary>
/// Gets all categories
/// 获取所有分类
/// </summary>
/// <param name="showHidden">A value indicating whether to show hidden records一个值,指示是否显示隐藏的记录</param>
/// <returns>Categories</returns>
public static List<Category> GetAllCategories(bool showHidden)
{
var context = ObjectContextHelper.CurrentObjectContext;
var query = from c in context.Categories
orderby c.ParentCategoryId, c.DisplayOrder
where (showHidden || c.Published) &&
!c.Deleted
select c;
var unsortedCategories = query.ToList();
//sort categories
//TODO sort categories on database layer
var sortedCategories = unsortedCategories.SortCategoriesForTree(0);
return sortedCategories;
}
/// <summary>
/// Gets all categories by parent category identifier
/// 获取所有类别的父类别标识
/// </summary>
/// <param name="parentCategoryId">Parent category identifier</param>
/// <returns>Category collection</returns>
public static List<Category> GetAllCategoriesByParentCategoryId(int parentCategoryId)
{
bool showHidden = NopContext.Current.IsAdmin;
return GetAllCategoriesByParentCategoryId(parentCategoryId, showHidden);
}
/// <summary>
/// Gets all categories filtered by parent category identifier
/// 获取由父类所有类别过滤标识符
/// </summary>
/// <param name="parentCategoryId">Parent category identifier |父类标识符</param>
/// <param name="showHidden">A value indicating whether to show hidden records</param>
/// <returns>Category collection|分类集合</returns>
public static List<Category> GetAllCategoriesByParentCategoryId(int parentCategoryId,
bool showHidden)
{
var context = ObjectContextHelper.CurrentObjectContext;
var query = from c in context.Categories
orderby c.DisplayOrder
where (showHidden || c.Published) &&
!c.Deleted &&
c.ParentCategoryId == parentCategoryId
select c;
var categories = query.ToList();
return categories;
}