嘎嘎,这个100是我的拉//建树
private void CreateTVMerchCata()
{
//清空树中的节点
TVMerchCata.Nodes.Clear(); //创建根节点
TreeNode TNRoot = new TreeNode();
//根节点ID数据
TNRoot.ID = "0";
//根节点文本
TNRoot.Text = "物资目录";
//设置图片
TNRoot.ImageUrl = "../images/root.gif";
// TNRoot.ExpandedImageUrl = "";
// TNRoot.SelectedImageUrl = "";
//添加根节点
TVMerchCata.Nodes.Add(TNRoot); //创建第一级节点
//定义连接
DB2Conn MyDB2Conn = new DB2Conn();
//查询语句
string sSql =  "SELECT CATACODE, PARENTCODE, CATANAME FROM MERCHCATA WHERE PARENTCODE = '0'";
//查出第一级目录
DataSet MyDSFirst = MyDB2Conn.GetData(sSql);
//获取一级记录数
int iFristRows = MyDSFirst.Tables[0].Rows.Count;
//遍历记录添加第一级节点
for (int i = 0; i < iFristRows; i++)
{ //创建第一级节点
TreeNode TNFirst = new TreeNode();
//类别名称编码
TNFirst.ID = Convert.ToString(MyDSFirst.Tables[0].Rows[i]["CATACODE"]);
//类别名称
TNFirst.Text = Convert.ToString(MyDSFirst.Tables[0].Rows[i]["CATANAME"]);
//设置图片
TNFirst.ImageUrl = "../images/folder.gif";
TNFirst.ExpandedImageUrl = "../images/folderopen.gif";
// TNRoot.SelectedImageUrl = "";
//添加第一级节点
TNRoot.Nodes.Add(TNFirst); //遍历记录添加二级节点
if (Convert.ToInt32(sMerchLevel) > 1)
{   
//找出以此一级节点为父级的目录
sSql = "SELECT CATACODE, PARENTCODE, CATANAME FROM MERCHCATA WHERE PARENTCODE = '" + TNFirst.ID + "'";
//查出第二级目录
DataSet MyDSSecond = MyDB2Conn.GetData(sSql);
//获取二级记录数
int iSecondRows = MyDSSecond.Tables[0].Rows.Count;
//遍历二级目录记录
for (int j = 0; j< iSecondRows; j++)
{
//创建二级节点
TreeNode TNSecond = new TreeNode();
//类别名称编码
TNSecond.ID = Convert.ToString(MyDSSecond.Tables[0].Rows[j]["CATACODE"]);
//类别名称
TNSecond.Text = Convert.ToString(MyDSSecond.Tables[0].Rows[j]["CATANAME"]);
//设置图片
TNSecond.ImageUrl = "../images/folder.gif";
TNSecond.ExpandedImageUrl = "../images/folderopen.gif";
// TNSecond.SelectedImageUrl = "";
//添加第二级节点
TNFirst.Nodes.Add(TNSecond); //创建三级节点
if (Convert.ToInt32(sMerchLevel) > 2)
{   
//找出以次二级节点为父级的目录
sSql = "SELECT CATACODE, PARENTCODE, CATANAME FROM MERCHCATA WHERE PARENTCODE = '" + TNSecond.ID + "'";
//查出第二级目录
DataSet MyDSThird = MyDB2Conn.GetData(sSql);
//获取三级记录数
int iThirdRows = MyDSThird.Tables[0].Rows.Count;
//遍历三级目录记录
for (int k = 0; k < iThirdRows; k++)
{
//创建三级节点
TreeNode TNThird = new TreeNode();
//类别名称编码
TNThird.ID = Convert.ToString(MyDSThird.Tables[0].Rows[k]["CATACODE"]);
//类别名称
TNThird.Text = Convert.ToString(MyDSThird.Tables[0].Rows[k]["CATANAME"]);
//设置图片
TNThird.ImageUrl = "../images/folder.gif";
TNThird.ExpandedImageUrl = "../images/folderopen.gif";
// TNThird.SelectedImageUrl = "";
//添加第三级级节点
TNSecond.Nodes.Add(TNThird);
}
}
} }
} //展开根节点
TNRoot.Expanded = true;

//把空数据集绑定到DGMerch和DGMerchModel,显示表头。
DGMerch.DataSource = GetDataSet("DSNothing", true);
DGMerch.DataBind();
DGMerchModel.DataSource = GetDataSet("DSNothing", true);
DGMerchModel.DataBind();}

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    // Put user code to initialize the page here
    if (IsPostBack==false)
    {
    this.sqlDataAdapter1.Fill(this.dataSet11);
    TreeNode rootNode=new TreeNode();
    AddTree(1,null);

    }
    } // 递归添加数的节点
    public void AddTree(int ParentID, TreeNode pNode) 
    {
    // DataSet ds=(DataSet) this.ViewState["ds"]; 
    DataView dvTree = new DataView(this.dataSet11.Tables[1]);
    //过滤ParentID,得到当前所有子节点
    dvTree.RowFilter =  "[PARENTID] = " + ParentID; foreach(DataRowView Row in dvTree) 
    {
    TreeNode Node=new TreeNode() ;
    if(pNode == null) 
    {    //添加根节点
    TreeView1.Nodes.Add(Node);
    Node.Expanded = false;

    else 
    {   //添加当前节点的子节点
    pNode.Nodes.Add(Node);
    Node.Expanded = false;
    } Node.Text = Row["context"].ToString();
    AddTree(Int32.Parse(Row["id"].ToString()), Node);//递归
    Node.Target = "frright";
    Node.NavigateUrl = Row["depth"].ToString();
    Node.ImageUrl = Row["image"].ToString() ;
    Node.ExpandedImageUrl = Row["image"].ToString();
    }                   
    }