RT 树的问题烦恼我好几天了,一直没弄透,希望有好人帮一下!

解决方案 »

  1.   

    你想动态加载树    /// <summary>
        /// 动态加载树
        /// </summary>
        /// <param name="panum"></param>
        public void CreateTree(int intPANumber)
        {
            string r = string.Empty;
            SqlDataAdapter da_1 = new SqlDataAdapter("select *from Tasktype", DBHelper.Connection);
            DataSet ds_1 = new DataSet();
            da_1.Fill(ds_1);
            SqlDataAdapter da_2 = new SqlDataAdapter("select a.*,b.* from user_Task a,Task b where a.Task_number=b.Task_number and a.PA_number=" + intPANumber + " and a.Whether_Achieve='N'", DBHelper.Connection);
            DataSet ds_2 = new DataSet();
            da_2.Fill(ds_2);
            int T1_Count = ds_1.Tables[0].Rows.Count;
            int T2_Count = ds_2.Tables[0].Rows.Count;
            for (int i = 0; i < T1_Count; i++)
            {
                r += "<div id=main" + i + " onClick=\"document.all.child" + i + ".style.display=(document.all.child" + i + ".style.display =='none')?'':'none'\"><img src=\"image/Mission/+.gif\">" + ds_1.Tables[0].Rows[i]["Tasktype_name"].ToString() + "</img></div>";
                r += "<div id=child" + i + " style=display:none>";
                r += "<ul>";
                for (int j = 0; j < T2_Count; j++)
                {
                    if (ds_1.Tables[0].Rows[i]["Tasktype_number"].ToString() == ds_2.Tables[0].Rows[j]["Tasktype_number"].ToString())
                    {
                        r += "<li><a href=# id=" + ds_2.Tables[0].Rows[j]["Task_number"].ToString() + " onclick=TaskShow(this);>" + ds_2.Tables[0].Rows[j]["Task_name"].ToString() + "</a></li>";
                    }
                }
                r += "</ul>";
                r += "</div>";
            }
            this.TreeTask.InnerHtml = r;
        }
      

  2.   

    我是要获取树上的节点啊,然后添加到checkbox里面!
      

  3.   

    就是5楼那句话,递归
    递归+XML描述是创建树的最好搭配