偶然微笑--专注于.net

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
using System;
using System.Data;
using System.Configuration;
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.Text;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page 
{

    System.Text.StringBuilder sb 
= new StringBuilder();
    
//默认深度1;
    public int i = 1;

    
protected void Page_Load(object sender, EventArgs e)
    {
        
if(!this.IsPostBack)
        {
            
this.buildTree();
        }
    }

    
/// <summary>
    
/// 创建树
    
/// </summary>
    private void buildTree()
    {

        DataSet ds 
= ExecuteDataSet("select * from Sort");

        
//建立关系
        ds.Relations.Add("SortRelation", ds.Tables[0].Columns["SortId"], ds.Tables[0].Columns["ParentSortId"]);

        
//遍历每行并根据数据行关系生成树
        foreach (DataRow dbRow in ds.Tables[0].Rows)
        {
            
if (dbRow.IsNull("ParentSortId"))
            {
                
string s = CreateNode(dbRow["SortName"].ToString());
                sb.Append(s);
                PopulateSubTree(dbRow,i);
                
            }
        }
        
        
this.Response.Write(sb);
    }

   
/// <summary>
   
/// 遍历子类
   
/// </summary>
   
/// <param name="dbRow">遍历的Row</param>
   
/// <param name="depth">深度(用于显示空格个数)</param>
    private void PopulateSubTree(DataRow dbRow,int depth)
    {
        
++depth;
        
foreach (DataRow childRow in dbRow.GetChildRows("SortRelation"))
        {
            
string s = "";
            
for (int j=1;j<=depth;j++ )
            {
                s 
= "&nbsp" + s;
            }
            s 
+= "|-" + childRow["SortName"].ToString() + "<br>";
           sb.Append(s);
           PopulateSubTree(childRow,depth);
        }
    }

    
/// <summary>
    
/// 显示父类名称
    
/// </summary>
    
/// <param name="sortname">类别名称</param>
    
/// <returns></returns>
    private string CreateNode(string sortname)
    {
        
string s = "|-"+sortname+"<br>";

        
return s;
     }

     
#region  返回dataset对象
     
/// <summary>
     
/// 返回dataset对象
     
/// </summary>
     
/// <param name="sql">sql语句</param>
     
/// <returns></returns>
     public DataSet ExecuteDataSet(string sql)
     {
         SqlConnection con 
= new SqlConnection("server=.;database=sort;uid=sa;pwd=;");
         DataSet ds 
= new DataSet();
         SqlDataAdapter sda 
= new SqlDataAdapter(sql, con);
         sda.Fill(ds);
         
return ds;
     }
     
#endregion

}
posted on 2008-09-19 22:37  偶然微笑  阅读(606)  评论(4编辑  收藏  举报