动态树2070208

  public   void  BindFavoriteTree()
{
        
this .treeV_Favorite.Nodes.Clear();
        TreeNode node 
=   new  TreeNode();    // 这里是创建一个根节点,就是dome中看到的Root 
        node.Text  =   " HelpFavorite " ;
        node.Value 
=   " 1 " ;
        CreateChildTree(node, 
1 );
        treeV_Favorite.Nodes.Add(node);
        node.SelectAction 
=  TreeNodeSelectAction.Expand;

        TreeNode node1 
=   new  TreeNode();
        node1.Text 
=   " HelpSearch " ;
        node1.Value 
=   " 2 " ;
        CreateChildTree(node1, 
2 );
        treeV_Favorite.Nodes.Add(node1);
        node1.SelectAction 
=  TreeNodeSelectAction.Expand;

    }
    
protected   void  CreateChildTree(TreeNode _parentNode,  int  _parentID)
{
        
using  (SqlConnection _conn  =   new  SqlConnection(constring))
{
            SqlCommand _comm 
=   new  SqlCommand();
            
string  sql  =   " SELECT IDFavorite, Title, Status, IDHelpFile FROM V_Favorite where status=@rootid " ;
            _comm.Parameters.Add(
" @rootid " , SqlDbType.Int).Value  =  _parentID;
            _comm.CommandText 
=  sql;
            _comm.Connection 
=  _conn;
            _conn.Open();
            
using  (SqlDataReader r  =  _comm.ExecuteReader())
            {
                
while  (r.Read())
               {
                    TreeNode _node 
=   new  TreeNode();
                    _node.Text 
=  r[ " Title " ].ToString();
                    _node.Value 
=  r[ " IDHelpFile " ].ToString();
                    _node.ShowCheckBox 
=   true ;
                    
// CreateChildTree(_node, (int)r["ID"]);   // 递归出子节点 
                    _parentNode.ChildNodes.Add(_node);
                }
            }
        }
    }
  

 按钮删除功能:

     protected   void  imgBtn_DelFavorite_Click( object  sender, ImageClickEventArgs e)
    
{
        
foreach ( TreeNode node in treeV_Favorite.CheckedNodes)
        
{
            
string SelectTreeID = node.Value;
            
string strDelete = "delete from CD_HC_Favorite where IDUser='" + UserProfile.UserInfo.UserID.ToString() + "' and IDHelpFile='" + SelectTreeID + "' and status = '"+node.Parent.Value+"'";
            PubLibrary.cmdExecute(strDelete);
        }

        BindFavoriteTree();
    }

==============================================================================
下面介绍第二中方法前台:

<% @ Page Language="C#" AutoEventWireup="true" CodeFile="AutoTree.aspx.cs" Inherits="AutoTree_AutoTree"  %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > AutoTree </ title >
</ head >
< body >
< form  id ="form1"  runat ="server" >
    
< div >
        
< asp:TreeView  ID ="AutoTree"  runat ="server"  ShowLines ="True" >
        
</ asp:TreeView >
        
&nbsp;&nbsp;&nbsp;&nbsp; < asp:DropDownList  ID ="ddlTreeNode"  runat ="server"  DataSourceID ="SqlDataSource1"
            DataTextField
="TreeName"  DataValueField ="TreeValue" >
        
</ asp:DropDownList >
        
< asp:TextBox  ID ="txtNode"  runat ="server" ></ asp:TextBox >
        
< asp:SqlDataSource  ID ="SqlDataSource1"  runat ="server"  ConnectionString ="<%$ ConnectionStrings:ConnectionString %>"
            SelectCommand
="SELECT [TreeValue], [TreeName] FROM [AutoTree]" ></ asp:SqlDataSource >
        
&nbsp;&nbsp;&nbsp;&nbsp;
        
< asp:Button  ID ="btnSubmit"  runat ="server"  Text ="Submit"  OnClick ="btnSubmit_Click"  Width ="60px"   /> &nbsp;
    
</ div >
    
</ form >

</ body >
</ html >

 

 后台:

 

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;
using  System.Data.SqlClient;

public   partial   class  AutoTree_AutoTree : System.Web.UI.Page
{
    
protected string constring = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
    
protected void Page_Load(object sender, EventArgs e)
   
{
        
if (!Page.IsPostBack)
       
{
            InitTree();
        }

    }

    
// 递归绑定同一个表数据
    private void InitTree()
    
{
        DataTable dt 
= GetTreeViewTable();
        DataView dv 
= new DataView(dt);
        dv.RowFilter 
= "TreeParentID='0'";

        
foreach (DataRowView drv in dv)
      
{
           TreeNode node 
= new TreeNode();
            node.Text 
= drv["TreeName"].ToString();
            node.Value 
= drv["TreeValue"].ToString();
            
//node.ImageUrl = drv["TreeIco"].ToString();
            node.Expanded = true;
            AutoTree.Nodes.Add(node);
            AddReplies(dt, node);
        }

    }


    
private DataTable GetTreeViewTable()
   
{
       
        SqlConnection con 
= new SqlConnection(constring);
        SqlDataAdapter da 
= new SqlDataAdapter("SELECT * FROM AutoTree", con);
        DataTable dt 
= new DataTable();
        da.Fill(dt);
        
return dt;
    }


    
private void AddReplies(DataTable dt, TreeNode node)
    
{

            DataView dv 
= new DataView(dt);
            dv.RowFilter 
= "TreeParentID='" + node.Value + "'";
            
foreach (DataRowView row in dv)
           
{
                TreeNode replyNode 
= new TreeNode();
                replyNode.Text 
= row["TreeName"].ToString();
                replyNode.Value 
= row["TreeValue"].ToString();
                
//replyNode.ImageUrl = row["TreeIco"].ToString();
                
//replyNode.NavigateUrl = row["TreeLink"].ToString().Trim();
                
//replyNode.Target = row["TargetStr"].ToString().Trim();
                replyNode.Expanded = false;
                node.ChildNodes.Add(replyNode);
                AddReplies(dt, replyNode);
            }

    }


    
protected void btnSubmit_Click(object sender, EventArgs e)
    
{
        
//string rootID = this.AutoTree.SelectedValue;
        string rootID = ddlTreeNode.SelectedValue.ToString();
        
string txtNode = this.txtNode.Text;
        
using (SqlConnection Conn = new SqlConnection(constring))
        
{
            SqlCommand cmd 
= new SqlCommand("insert into AutoTree (TreeName,TreeParentID,TreeValue) values (@TreeName,@TreeParentID,@TreeName)", Conn);
            cmd.Parameters.Add(
"@TreeName", SqlDbType.NVarChar, 50).Value = txtNode;
            cmd.Parameters.Add(
"@TreeParentID", SqlDbType.NVarChar, 50).Value = rootID;
            Conn.Open();
            cmd.ExecuteNonQuery();
            ddlTreeNode.ClearSelection();
            ddlTreeNode.DataSourceID 
= SqlDataSource1.ID;
            
this.txtNode.Text = "";
        }
        
        
this.AutoTree.Nodes.Clear();
        InitTree();


    }

}

 

 

数据库:ID,TreeParentID,TreeValue,TreeName.

第一条数据的 TreeParentID=0,TreeValue=1


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值