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
            
{
                Page.ClientScript.RegisterStartupScript(
this.GetType(), "fail""<script>alert('删除子节点时,必须保证其版块的新闻数量为0,否则不能删除!');</script>");
            }

        }


    }

}









数据库

USE [zhuxue]
GO
/****** 对象:  Table [dbo].[NewsClass]    脚本日期: 11/05/2007 16:57:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[NewsClass](
    
[NCID] [int] IDENTITY(1,1NOT NULL,
    
[NCName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,
    
[ParentID] [int] NULL,
    
[RootID] [int] NOT NULL CONSTRAINT [DF_NewsClass_RootID]  DEFAULT ((0)),
 
CONSTRAINT [PK_NewsClass] PRIMARY KEY CLUSTERED 
(
    
[NCID] ASC
)
WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFFON [PRIMARY]
ON [PRIMARY]
posted on 2007-11-05 17:02  超少  阅读(420)  评论(1编辑  收藏  举报