- 分类表:
- 添加分类页面:
效果图:
选择一级分类时则添加的是一级分类,选择其他的则代表选择的父级(上级)分类,类别名称为在选择的分类下要添加的子类(下级)
后台主要代码:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
try
{
Model.ProductCategory procate = new Model.ProductCategory();//实体类
if(Request.Form["classup"].ToString().Replace("-","") == "一级分类")//获取选择的类别判断是否添加的是一级分类
{
procate.UpID = 0;//添加一级分类的话上级id=0
procate.Name = Request.Form["newscateparent"];
procate.Level = 1;
}
else//表示选择的不是一级分类
{
procate.UpID = productcate_manager.select_productcate_name(Request.Form["classup"].ToString().Replace("-", "")).ID;//通过下拉选择的名称查询他的id作为添加的分类的上级id(select_productcate_name()方法通过分类名称查询分类表)
procate.Name = Request.Form["newscateparent"];//获取要添加的分类名称
procate.Level = productcate_manager.select_productcate_name(Request.Form["classup"].ToString().Replace("-", "")).Level + 1;//在上级的分类级别上加1
}
if (procate.Name != "")
{
if (productcate_manager.insert_productcategory(procate))//添加分类
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('添加成功!');location.href='SelectProductCategory.aspx';</script>");//添加成功跳转到查询页面
}
else
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('添加失败,名称不能为空!');</script>");
NewMethod();
}
}
else
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('添加失败,名称不能为空!');</script>");
NewMethod();
}
}
catch
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('添加失败,名称不能为空!');</script>");
NewMethod();
}
}
else
{
NewMethod();//加载时绑定下拉数据
}
}
private void NewMethod()
{
StringBuilder sb = new StringBuilder();
DataTable table1 = productcate_manager.select_productcategory();//获取所有的产品分类
DataRow[] rows = table1.Select("UpID=0");
sb.Append("<select name =\"classup\" id =\"class_up\" runat =\"server\" >");
sb.Append("<option>一级分类</option>");
foreach (DataRow dr in rows)
{
string id = dr["ID"].ToString();
string name = dr["Name"].ToString();
int level = (int)dr["Level"];
string gang = "----";
for (int i = 0; i < level; i++)
{
gang = gang + "----";
}
sb.AppendFormat("<option>{0}</option>",gang + name);
sb.Append(GetSubMenu(id, table1));
}
sb.Append("</select>");
_menu = sb.ToString();
}
private string GetSubMenu(string pid, DataTable dt)
{
StringBuilder sb = new StringBuilder();
DataRow[] rows = dt.Select("UpID=" + pid);
foreach (DataRow dr in rows)
{
string id = dr["ID"].ToString();
string name = dr["Name"].ToString();
int level = (int)dr["Level"];
string gang = "----";
for (int i = 0; i < level; i++)
{
gang = gang + "----";
}
sb.AppendFormat("<option>{0}</option>", gang + name);
sb.Append(GetSubMenu(id, dt)); //递归
}
return sb.ToString();
}
页面:
3. 展示产品分类页面:
效果图:
页面代码及部分样式:
删除编辑跳转:
后台:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ListMenu();
}
}
public void ListMenu()
{
StringBuilder sb = new StringBuilder();
DataTable table = new DataTable();
table = procate_manager.select_productcategory();//获取分类那张表
DataRow[] rows = table.Select("UpID=0");
foreach (DataRow dr in rows)
{
string id = dr["ID"].ToString();
string name = dr["Name"].ToString();
int level = (int)dr["Level"];
string gang = "|———";
for(int i = 0; i < level; i++)
{
gang = gang + "———";
}
sb.AppendFormat("<li style=\"line-height:30px; \"><i class=\"icon\"></i>{1} <input type=\"button\" class=\"delebtn \" did=\"{0}\" value=\"删除\" style=\"background:#1aa97b;border: 1px solid #1424a9;padding: 3px 6px;color: #fff;border-radius: 3px;\"/><input type=\"button\" class=\"updatebtn\" uid=\"{0}\" value=\"编辑\"style=\"background:#1aa97b;border: 1px solid #1424a9;padding: 3px 6px;color: #fff;border-radius: 3px;\" />", id,gang+name);
sb.Append(GetSubMenu(id, table));
sb.Append("</li>\r\n");
}
_menu = sb.ToString();
}
private string GetSubMenu(string pid, DataTable dt)
{
StringBuilder sb = new StringBuilder();
DataRow[] rows = dt.Select("UpID=" + pid);
sb.Append("<ul style=\"display:none\">\r\n");
foreach (DataRow dr in rows)
{
string id = dr["ID"].ToString();
string name = dr["Name"].ToString();
int level = (int)dr["Level"];
string gang = "|———";
for (int i = 0; i < level; i++)
{
gang = gang + "———";
}
sb.AppendFormat("<li style=\"line-height:30px; \"><i class=\"icon\"></i>{1} <input type=\"button\" class=\"delebtn \" did=\"{0}\" value=\"删除\" style=\"background:#1aa97b;border: 1px solid #1424a9;padding: 3px 6px;color: #fff;border-radius: 3px;\"/><input type=\"button\" class=\"updatebtn\" uid=\"{0}\" value=\"编辑\" style=\"background:#1aa97b;border: 1px solid #1424a9;padding: 3px 6px;color: #fff;border-radius: 3px;\" />", id,gang+name);
sb.Append(GetSubMenu(id, dt)); //递归
sb.Append("</li>\r\n");
}
sb.Append("</ul>\r\n");
return sb.ToString();
}
index_bg: