现在的位置: 首页 > 综合 > 正文

无限级分类的增删改

2012年11月07日 ⁄ 综合 ⁄ 共 5463字 ⁄ 字号 评论关闭
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class SuperAdmin_ClassManage : System.Web.UI.Page
{
    
public DataTable dt;
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!Page.IsPostBack)
        
{
            GetData();
            BindParent();
        }

    }


    
/// <summary>
    
/// 获取数据,填充datatable
    
/// </summary>

    public void GetData()
    
{
        sc.BLL.NewsClass ncbll 
= new sc.BLL.NewsClass();
        DataSet mydata 
= ncbll.getDataSet("*""""ncid desc");
        
this.dt = mydata.Tables[0];
    }


    
/// <summary>
    
/// 绑定父节点
    
/// </summary>

    public void BindParent()
    
{
        
if (dt.Rows.Count > 0)
        
{
            
foreach (DataRow dr in dt.Rows)
            
{
                
if (dr["ParentID"].ToString().Trim() == "0")
                
{
                    
this.dropClassType.Items.Add(new ListItem(dr["NCName"].ToString(), dr["NCID"].ToString()));
                    
this.BindChild(this.dropClassType, dt, dr["NCID"].ToString(), 1);
                }

            }

        }

        
this.dropClassType.Items.Insert(0new ListItem("根目录""0"));
    }


    
/// <summary>
    
/// 绑定子节点
    
/// </summary>
    
/// <param name="drop"></param>
    
/// <param name="d"></param>
    
/// <param name="id"></param>
    
/// <param name="?"></param>

    public void BindChild(DropDownList drop, DataTable d, string id, int len)
    
{
        DataRow[] dr 
= d.Select("ParentID = '" + id + "'""NCID desc");
        
for (int i = 0; i < dr.Length; i++)
        
{
            
this.dropClassType.Items.Add(new ListItem(this.Sanpce(len) + dr[i]["NCName"].ToString(), dr[i]["NCID"].ToString()));
            
this.BindChild(drop, d, dr[i]["NCID"].ToString(), len + 1);
        }

    }


    
/// <summary>
    
/// 根据长度来判断缩进
    
/// </summary>
    
/// <param name="len"></param>
    
/// <returns></returns>

    public string Sanpce(int len)
    
{
        
string str = "";
        
for (int j = 0; j < len; j++)
        
{
            str 
+= " ";
        }

        
return str;
    }


    
/// <summary>
    
/// 修改栏目
    
/// </summary>
    
/// <param name="sender"></param>
    
/// <param name="e"></param>

    protected void btnUpdate_Click(object sender, EventArgs e)
    
{
        
if (this.dropClassType.SelectedValue != "0")
        
{
            
int id = int.Parse(this.dropClassType.SelectedValue.ToString());
            sc.BLL.NewsClass ncbll 
= new sc.BLL.NewsClass();
            sc.Model.NewsClass ncmodel 
= new sc.Model.NewsClass();
            ncmodel.ParentID 
= ncbll.GetModel(id).ParentID;
            ncmodel.NCID 
= id;
            ncmodel.NCName 
= this.txrClassName.Text.ToString().Trim();
            
bool r = ncbll.Update(ncmodel);
            
if (r)
            
{
                Page.ClientScript.RegisterStartupScript(
this.GetType(), "s""<script>alert('修改成功!');location.reload('classmanage.aspx')</script>");
            }

            
else
            
{
                Page.ClientScript.RegisterStartupScript(
this.GetType(), "fail""<script>alert('修改失败,请您稍后再试!');</script>");
            }

        }

        
else
        
{
            Page.ClientScript.RegisterStartupScript(
this.GetType(), "fail""<script>alert('不能编辑“根目录”,请您选择真实的栏目。');</script>");
        }

    }


    
/// <summary>
    
/// 添加新的目录
    
/// </summary>
    
/// <param name="sender"></param>
    
/// <param name="e"></param>

    protected void btnInsert_Click(object sender, EventArgs e)
    
{
        
if (this.txtNewClass.Text != "")
        
{
            sc.BLL.NewsClass bll 
= new sc.BLL.NewsClass();
            sc.Model.NewsClass model 
= new sc.Model.NewsClass();
            model.ParentID 
= int.Parse(this.dropClassType.SelectedValue.ToString());
            model.NCName 
= this.txtNewClass.Text.ToString();
            
int r = bll.Add(model);
            
if (r > 0)
            
{
                Page.ClientScript.RegisterStartupScript(
this.GetType(), "s""<script>alert('添加成功!');location.reload('classmanage.aspx')</script>");
            }

            
else
            
{
                Page.ClientScript.RegisterStartupScript(
this.GetType(), "fail""<script>alert('添加失败,请您稍后再试!');</script>");
            }

        }

        
else
        
{
            Page.ClientScript.RegisterStartupScript(
this.GetType(), "fail""<script>alert('栏目名称不能为空!');</script>");
        }

    }


    
/// <summary>
    
/// 删除当前选中项
    
/// </summary>
    
/// <param name="sender"></param>
    
/// <param name="e"></param>

    protected void btnDel_Click(object sender, EventArgs e)
    
{
        
int id = int.Parse(this.dropClassType.SelectedValue.ToString());
        sc.BLL.NewsClass bll 
= new sc.BLL.NewsClass();
        DataSet mydata 
= bll.getDataSet("*""parentid='" + id + "'""");
        
if (id == 0)
        
{
            Page.ClientScript.RegisterStartupScript(
this.GetType(), "fail""<script>alert('不能删除“根目录”,请您重新选择');</script>");

        }

        
else if (mydata.Tables[0].Rows.Count > 0)
        
{
            Page.ClientScript.RegisterStartupScript(
this.GetType(), "fail""<script>alert('必须将其子节点全部删除后才能删除父节点');</script>");
        }

        
else
        
{
            
bool r = bll.Delete(id);
            
if (r)
            
{
                Page.ClientScript.RegisterStartupScript(
this.GetType(), "s""<script>alert('删除成功!');location.reload('classmanage.aspx')</script>");
            }

            
else
            
{
【上篇】
【下篇】

抱歉!评论已关闭.