ASP.NET从数据表动态生成TreeView树

来源:互联网 发布:医院网络咨询聊天技巧 编辑:程序博客网 时间:2024/05/14 01:25

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            TreeViewBind();
            TreeView1.CollapseAll();
        }
    }

    #region 数据表绑定到树
    private void CreateChildNode(TreeNode ParetNode, string ID, OleDbConnection OleConn)
    {
        OleDbCommand mycmd1 = new OleDbCommand("select * from Tree where ParentID="+ID, OleConn);
        OleDbDataReader Dr = mycmd1.ExecuteReader();
        while (Dr.Read())
        {
            TreeNode node = new TreeNode();
            node.Text = Dr["名称"].ToString();
            node.Value = Dr["ID"].ToString();
            node.NavigateUrl = "";
            node.Expanded = true;
            ParetNode.ChildNodes.Add(node);
            CreateChildNode(node, node.Value, OleConn);
        } 
    }

    private void TreeViewBind()
    {
        string Dir = Server.MapPath("~///Data//");
        string path = @" Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source=" + Dir + "main.mdb; ";

        OleDbConnection OleConn=new OleDbConnection(path);
        OleConn.Open();

        OleDbCommand mycmd1 = new OleDbCommand("select * from Tree where ParentID=0", OleConn);
        OleDbDataReader Dr = mycmd1.ExecuteReader();
        TreeView1.Nodes.Clear();
        while (Dr.Read())
        {
            TreeNode rootnode= new TreeNode();
            rootnode.Text=Dr["名称"].ToString().Trim();
            rootnode.Value=Dr["ID"].ToString();
            rootnode.Expanded=true;
            TreeView1.Nodes.Add(rootnode);
            CreateChildNode(rootnode, rootnode.Value, OleConn);
        }
        OleConn.Close();
    }

    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        if (TreeView1.SelectedNode.ChildNodes.Count == 0)
        {
            string newID = TreeView1.SelectedNode.Value;
            string name = TreeView1.SelectedNode.Text;
            Response.Redirect("Index.aspx?ID=" + newID+ "&name=" + name, true);
        }
    }
    #endregion

原创粉丝点击