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.Data.SqlClient;public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            SqlConnection conn = new SqlConnection("server=127.0.0.1;uid=sa;pwd=cuihufox;database=Text");
            SqlDataAdapter sda = new SqlDataAdapter("select * from demo", conn);
            DataSet ds = new DataSet();
            sda.Fill(ds, "demo");
            BindTreeView("default", ds.Tables["demo"]);
        }
    }    
    //邦定根节点
    public void BindTreeView(string TargetFrame, DataTable dt)
    {
        DataRow[] drs = dt.Select("M_Id= " + 0);// 选出所有子节点                //菜单状态
        bool menuExpand = false;        TreeView1.Nodes.Clear(); // 清空树
        foreach (DataRow r in drs)//遍历节点,读取数据库对应字段
        {
            string nodeid = r["I_Id"].ToString();
            string text = r["I_Name"].ToString();
            string parentid = r["M_Id"].ToString();
            string url = r["I_URl"].ToString();
            string imageurl = r["I_Image"].ToString();
            string framename = TargetFrame;
            this.TreeView1.Font.Name = "宋体";
            this.TreeView1.Font.Size = FontUnit.Parse("9");                TreeNode rootnode = new TreeNode();
                rootnode.Text = text;
                rootnode.Value = nodeid;
                rootnode.NavigateUrl = url;
                rootnode.Target = framename;
                rootnode.Expanded = menuExpand;
                rootnode.ImageUrl = imageurl;
                rootnode.SelectAction = TreeNodeSelectAction.Expand;//和ASP.NET1.1中TREEVIEW的SelectExpands属性等效                       TreeView1.Nodes.Add(rootnode);                int sonparentid = int.Parse(nodeid);// Or =location
                CreateNode(framename, sonparentid, rootnode, dt);        }    }    //邦定任意节点
    public void CreateNode(string TargetFrame, int parentid, TreeNode parentnode, DataTable dt)
    {        DataRow[] drs = dt.Select("M_Id= " + parentid);//选出所有子节点                        
        foreach (DataRow r in drs)
        {
            string nodeid = r["I_Id"].ToString();
            string text = r["I_Name"].ToString();
            string url = r["I_URl"].ToString();
            string imageurl = r["I_Image"].ToString();
            string framename = TargetFrame;                TreeNode node = new TreeNode();
                node.Text = text;
                node.Value = nodeid;
                node.NavigateUrl = url;
                node.Target = TargetFrame;
                node.ImageUrl = imageurl;
                //node.Expanded=true;
                node.SelectAction = TreeNodeSelectAction.Expand; //和ASP.NET1.1中TREEVIEW的SelectExpands属性等效
                int sonparentid = int.Parse(nodeid);// Or =location                if (parentnode == null)
                {
                    TreeView1.Nodes.Clear();
                    parentnode = new TreeNode();
                    TreeView1.Nodes.Add(parentnode);
                }
                parentnode.ChildNodes.Add(node);
                CreateNode(framename, sonparentid, node, dt);        }                    }
    
}