打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ASP.NET TreeView树型菜单操作实例(代码调试通过)
<form id="Form1" method="post" runat="server">
   <FONT face="宋体">
    <TABLE id="Table1" cellSpacing="1" cellPadding="1"
width="700" border="1">
     <TR>
      <TD style="WIDTH: 168px"></TD>
      <TD>TreeView操作实例</TD>
     </TR>
     <TR>
      <TD style="WIDTH: 168px" vAlign="top">
       <iewc:TreeView id="TreeView1"
runat="server"></iewc:TreeView></TD>
      <TD vAlign="top">
       <TABLE id="Table2" cellSpacing="1"
cellPadding="1" width="100%" border="0">
        <TR>
         <TD>节点名
          <asp:TextBox
id="TextBox1" runat="server"></asp:TextBox></TD>
        </TR>
        <TR>
         <TD>
          <asp:Button
id="addButton" runat="server" Text="添 加"></asp:Button>
          <asp:Button
id="editButton" runat="server" Text="修 改"></asp:Button>
          <asp:Button
id="delButton" runat="server" Text="删 除"></asp:Button></TD>
        </TR>
        <TR>
         <TD>移动节点</TD>
        </TR>
        <TR>
         <TD>要移动到的节点
         
<asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList></TD>
        </TR>
        <TR>
         <TD>
          <asp:Button
id="moveButton" runat="server" Text="移 动"></asp:Button></TD>
        </TR>
       </TABLE>
      </TD>
     </TR>
     <TR>
      <TD style="WIDTH: 168px"></TD>
      <TD></TD>
     </TR>
    </TABLE>
   </FONT>
  </form>
.aspx.cs后台代码
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
  public string returnvalue="";//递归存储值
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   if(!Page.IsPostBack){
    Button del=new Button();
    del=(Button)Page.FindControl("delButton");
    del.Attributes.Add("onclick","return confirm('确定删除');");
    showlist();
   }
  }
private void showlist(){
   //绑定TreeView
  //infobase io=new infobase();  
   DropDownList1.Items.Clear();
   ListItem list=new ListItem();
   list.Value="0";
   list.Text="全部类别";
   DropDownList1.Items.Add(list);
   DropDownListBind(0,DropDownList1);
   //添加根节点
   TreeView1.Nodes.Clear();
   TreeNode node=new TreeNode();
   node.Text="类别列表";
   node.Target="0";
   node.Expanded=true;
   TreeView1.Nodes.Add(node);  
   treeShow(0,node);
   TreeView1.DataBind();
  }
  private void DropDownListBind(int parterid,DropDownList droplist){//递归类别
   DataSet ds=returnDataset(parterid);
   if(ds!=null){
    for(int i=0;i<ds.Tables[0].Rows.Count;i++){
     ListItem list=new ListItem();
     if (ds.Tables[0].Rows[i]["depth"].ToString()=="0")
     {
      list.Text=ds.Tables[0].Rows[i]
["name"].ToString();
     }
     else{
      string depth="";
      //for(i=1;i<Int32.Parse(ds.Tables[0].Rows
[i]["depth"].ToString());i++){
       depth+="--";
      //}
          list.Text=depth+ds.Tables
[0].Rows[i]["name"].ToString();
     }
     list.Value=ds.Tables[0].Rows[i]["id"].ToString();
     droplist.Items.Add(list);
     DataSet ds2=returnDataset(Int32.Parse(ds.Tables
[0].Rows[i]["id"].ToString()));
     if(ds2.Tables[0].Rows.Count>0){
      DropDownListBind(Int32.Parse(ds.Tables
[0].Rows[i]["id"].ToString()),DropDownList1);
     }
    }
   }
  }
  private void treeShow(int parterid,TreeNode treenode){//递归类别
   // 
   DataSet ds=returnDataset(parterid);
   if (ds!=null)
   {
    for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    {
     TreeNode node=new TreeNode();
     node.Target=ds.Tables[0].Rows[i]["id"].ToString();
     node.Text=ds.Tables[0].Rows[i]["name"].ToString();
     treenode.Nodes.Add(node);
     node.Expanded=true;
     DataSet ds2=returnDataset(Int32.Parse(ds.Tables
[0].Rows[i]["id"].ToString()));
     if (ds2.Tables[0].Rows.Count>0)
     {
      treeShow(Int32.Parse(ds.Tables[0].Rows[i]
["id"].ToString()),node);
     }
    }
   }
  }
  private DataSet returnDataset(int parterid){
   OleDbConnection conn=new OleDbConnection();
   conn.ConnectionString="provider=microsoft.jet.oledb.4.0;data
source="+Server.MapPath("Data.mdb");
   OleDbDataAdapter cmd;
   DataSet ds=new DataSet();
   try
   {
    conn.Open();
    cmd=new OleDbDataAdapter("select * from treeview where
parterid="+parterid+" order by createtime asc",conn);
    cmd.Fill(ds);
   }
   catch(Exception ex)
   {
    Response.Write(ex.ToString());
    Response.End();
   }
   finally{
    conn.Dispose();
   }
   return ds;
  }
  private void addButton_Click(object sender, System.EventArgs e)
  {//添加节点
   if (TextBox1.Text!="")
   {
    TreeNode treenode=TreeView1.GetNodeFromIndex
(TreeView1.SelectedNodeIndex);
    string[] treedepth=treenode.GetNodeIndex().Split('.');
    if(treenode.Target!=null)
    {
     int depth=treedepth.Length-1;//获得深度
     int parterid=Int32.Parse(treenode.Target);//获得父类
ID
     string classname=TextBox1.Text;//获得类名
     OleDbConnection conn=new OleDbConnection();
    
conn.ConnectionString="provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath
("Data.mdb");
     conn.Open();
     OleDbCommand cmd=new OleDbCommand();
     cmd.CommandType=CommandType.Text;
     cmd.Connection=conn;
     cmd.CommandText="insert into treeview
(name,parterid,depth)values('"+classname+"',"+parterid+","+depth+")";
     try
     {
      cmd.ExecuteNonQuery();
      Response.Write("<script>alert('添加成
功');location.href='TreeViewStudy.aspx';</script>");
      Response.End();
     }
     catch(Exception ex)
     {
      Response.Write(ex.ToString());
      Response.End();
     }
     finally
     {
      cmd.Dispose();
      conn.Dispose();
     }
    }
    else{
    //Response.Write(treenode.Target+"123<br>");
    }
   }
   else{
   Response.Write("请填写类别并选择节点");
   }
   }
  private void editButton_Click(object sender, System.EventArgs e)
  {//修改节点
   if (TextBox1.Text!="")
   {
    TreeNode treenode=TreeView1.GetNodeFromIndex
(TreeView1.SelectedNodeIndex);
    int id=Int32.Parse(treenode.Target);
    string classname=TextBox1.Text;
    if(treenode.Target!=null)
    {
     OleDbConnection conn=new OleDbConnection();
    
conn.ConnectionString="provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath
("Data.mdb");
     conn.Open();
     OleDbCommand cmd=new OleDbCommand();
     cmd.CommandType=CommandType.Text;
     cmd.Connection=conn;
     cmd.CommandText="update treeview set
name='"+classname+"' where id="+id;
     try
     {
      cmd.ExecuteNonQuery();
      Response.Write("<script>alert('修改成
功');location.href='TreeViewStudy.aspx';</script>");
      Response.End();
     }
     catch(Exception ex)
     {
      Response.Write(ex.ToString());
      Response.End();
     }
     finally
     {
      cmd.Dispose();
      conn.Dispose();
     }
    }
    else{}
   }
   else
   {
    Response.Write("请填写类别并选择节点");
   }
  }
  private void delButton_Click(object sender, System.EventArgs e)
  {//删除  
   TreeNode treenode=TreeView1.GetNodeFromIndex
(TreeView1.SelectedNodeIndex);
   int id=Int32.Parse(treenode.Target);
   //Response.Write(id.ToString()+"<br>");
   string tmpid="";
   tmpid=id.ToString()+allid(treenode.Nodes).ToString();
   //Response.Write(tmpid);
   //Response.End();
   if (treenode.Target!="0")
   {
    OleDbConnection conn=new OleDbConnection();
    conn.ConnectionString="provider=microsoft.jet.oledb.4.0;data
source="+Server.MapPath("Data.mdb");
    conn.Open();
    OleDbCommand cmd=new OleDbCommand();
    cmd.CommandType=CommandType.Text;
    cmd.Connection=conn;
    cmd.CommandText="delete * from treeview where id in
("+tmpid+")";
    try
    {
     cmd.ExecuteNonQuery();
     Response.Write("<script>alert('删除成
功');location.href='TreeViewStudy.aspx';</script>");
     Response.End();
    }
    catch(Exception ex)
    {
     Response.Write(ex.ToString());
     Response.End();
    }
    finally
    {
     cmd.Dispose();
     conn.Dispose();
    }
   }
   else{
    Response.Write("不能删除根节点");   
   }
  }
  private string allid(TreeNodeCollection tnc)
  {//遍历TreeView节点(递归算法)
   foreach(TreeNode node in tnc){
    if(node.Nodes.Count!=0){
     returnvalue+=","+node.Target;
     //Response.Write(node.Text+node.Target+"<br>");
     allid(node.Nodes);    
    }
    else{
     //Response.Write(node.Text+node.Target+"<br>");
     returnvalue+=","+node.Target;
    }
   }
   return returnvalue;
  }
  private void moveButton_Click(object sender, System.EventArgs e)
  {//移动
   //此功能实现的时候需要考虑移动中所有类的深度是否有子类问题
  }

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mdl821120/archive/2007/05/13/1606835.aspx
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
手机卡顿反应慢,原来是这个设置没关,关掉它,手机立马流畅不卡
民俗中的花轿(5)
我的空中摄影美图展示(40)
女人爱你入骨,多半是找到了这两种感觉
揭秘人性潜规则:如何在复杂的人际关系中生存与发展
翟欣欣,判了!!大量图片令人咋舌!
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服