using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

using Microsoft.Web.UI.WebControls;

 

namespace test_IBatisNET

{

    
/// <summary>

    
/// WebForm4 的摘要说明。

    
/// </summary>


    
public class WebForm4 : System.Web.UI.Page

    
{

        
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;

         DataSet ds
=new DataSet();  

    

        
private void Page_Load(object sender, System.EventArgs e)

        
{

            
// 在此处放置用户代码以初始化页面

 

            SqlConnection CN 
= new SqlConnection();

 

            
//初始化连接字符串

            CN.ConnectionString
="server=.;User ID=sa;Password=sa;database=WJOA;Connection Reset=FALSE";

            CN.Open();

 

            
//添加命令,从数据库中得到数据

            SqlCommand sqlCmd
= new SqlCommand();

            sqlCmd.Connection 
= CN;

            sqlCmd.CommandText 
= "select * from tbTree";

            sqlCmd.CommandType 
= CommandType.Text ;

            SqlDataAdapter adp 
= new SqlDataAdapter(sqlCmd);

            adp.Fill(ds);

 

            
//调用递归函数,完成树形结构的生成

            AddTree(
0, (TreeNode)null);

 

 

        }


 

        
Web 窗体设计器生成的代码

 

        
public void AddTree(int ParentID,TreeNode pNode) 

        
{

            TreeNode tn1
=new TreeNode();

            DataView dvTree 
= new DataView(ds.Tables[0]);

 

            
//过滤ParentID,得到当前的所有子节点

            dvTree.RowFilter 
=  "[PARENTID] = " + ParentID;

            
foreach(DataRowView Row in dvTree) 

            
{

                
if(pNode == null

                
{    //添加根节点

     

                    tn1.Text
=Row["ConText"].ToString();

                    TreeView1.Nodes.Add(tn1);

                    tn1.Expanded
=true;

                    AddTree(Int32.Parse(Row[
"ID"].ToString()),tn1);    //再次递归

                }
 

                
else 

                
{   //添加当前节点的子节点

                    TreeNode tn2
=new TreeNode();

                    tn2.Text
=Row["ConText"].ToString();

                    pNode.Nodes.Add(tn2);

                    tn1.Expanded
=true;

                     
int str=Int32.Parse(Row["ID"].ToString());

                    AddTree(Int32.Parse(Row[
"ID"].ToString()),tn2);    //再次递归

                }


            }


        }
  

 

 

    }


}


 

 

Xml绑定

我们也可以XML数据绑定到TreeView控件上。只需将TreeNodeSrc属性指定到相关XML文件即可。也可以在代码中指定。

代码:

   TreeView1.TreeNodeSrc
="tree.xml";
   TreeView1.DataBind();

注意:此时XML文件的格式是有限制的,其中TREENODES,treenode,text等为特定使用的元素及属性,大小写不能更改。如果格式不同,则需要用其它技术进行转换。下面是一个此种格式的XML示例。

<?xml version="1.0" encoding="UTF-8"?>
<TREENODES> 

  
<treenode text="Teach Yourself Active Server Pages 3.0 in 21 Days">
    
<treenode text="Price - $34.95" />
    
<treenode text="Authors">    
      
<treenode text="Mitchell" />
      
<treenode text="Atkinson" />
    
</treenode>
    
<treenode text="Year Published - 2000" />
  
</treenode>
  
  
<treenode text="Designing Active Server Pages">
    
<treenode text="Price - $29.95" />
    
<treenode text="Authors">    
      
<treenode text="Mitchell" />
    
</treenode>
    
<treenode text="Year Published - 2000" />
  
</treenode>

</TREENODES>
posted on 2006-06-23 15:54  过江  阅读(590)  评论(0编辑  收藏  举报