asp:TreeNode 可以隐藏一部分吗?
要是可以的话 代码怎么写?

解决方案 »

  1.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    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 His.Oracle;
    using System.Data.OracleClient;public partial class kmgl_kmgl : System.Web.UI.Page
    {
        private Database db = new Database();
        protected void Page_Load(object sender, EventArgs e)
        {
            CreateNewTree();
            TreeView1.CollapseAll();
            if (Request.Params["Tree"] != null)
            {
                TreeView1.Nodes[0].Expand();
                TreeView1.Nodes[0].ImageUrl = "~/images/treeImage/c.gif";
                string strKmdm = Request.Params["Tree"].ToString().Trim();
                int length = strKmdm.Length / 3;
                foreach (TreeNode tn in TreeView1.Nodes[0].ChildNodes)
                {
                    if (tn.Value == strKmdm.Substring(0, 3))
                    {
                        tn.Expand();
                        //tn.Parent.Expand();
                        tn.Selected = true;
                        //tn.Parent.Selected = true;
                        tn.ImageUrl = "~/images/treeImage/c.gif";
                        //tn.Parent.ImageUrl = "~/images/treeImage/c.gif";
                        extend(tn, length, strKmdm);
                    }
                    else
                    {
                        tn.Selected = false;
                    }
                }
            }    }
        private void extend(TreeNode tn, int intDepth, string value)
        {
            foreach (TreeNode tnc in tn.ChildNodes)
            {
                for (int i = 1; i < intDepth + 1; i++)
                {
                    if (tnc.Value == value.Substring(0, 3 * i))
                    {
                        tnc.Expand();
                        tnc.Selected = true;
                        tnc.ImageUrl = "~/images/treeImage/c.gif";
                        extend(tnc, intDepth, value);
                    }
                    else
                    {
                        tnc.Selected = false;
                    }
                }
            }
        }
        private void CreateNewTree()
        {
            TreeNode FirstNode = new TreeNode();
            FirstNode.Text = "科目管理";
            FirstNode.Value = "0";
            FirstNode.SelectAction = TreeNodeSelectAction.Expand;        FirstNode.ImageUrl = "~/images/treeImage/d.gif";
            TreeView1.Nodes.Add(FirstNode);        #region 一级根
            DataSet ds1 = new DataSet();
            string strSql = "select * from kmgl where kmdm like '00_' and deflag='0' order by kmbm";
            ds1 = db.GetDataSet(strSql);
            DataRow[] dr1 = ds1.Tables["MyData"].Select("1=1");
            if (dr1.Length > 0)
            {
                for (int i = 0; i < dr1.Length; i++)
                {
                    TreeNode node1 = new TreeNode();
                    node1.Text = dr1[i]["kmbm"].ToString().Trim() + " " + dr1[i]["kmmc"].ToString().Trim();
                    node1.Value = dr1[i]["kmdm"].ToString().Trim();
                    node1.NavigateUrl = "kmgl_Main.aspx?par=" + node1.Value;
                    node1.Target = "kmgl_Main";
                    node1.ImageUrl = "~/images/treeImage/d.gif";
                    node1.SelectAction = TreeNodeSelectAction.Expand;
                    TreeView1.Nodes.Add(node1);
                    FirstNode.ChildNodes.Add(node1);
                    CreateChildrenNode(dr1[i]["kmdm"].ToString(), node1);
                }
            }
            else
            {
                return;
            }    }
            #endregion    /// <summary>
        /// 绑定树
        /// </summary>
        /// <param name="table">树数据集</param>
        /// <param name="strKmdm">父节点代码</param>
        /// <param name="node">父节点</param>
        private void CreateChildrenNode(string strKmdm, TreeNode node)
        {        // 子树集合
            DataSet ds = new DataSet();
            string strSql1 = "select * from kmgl where kmdm like '" + strKmdm + "___' and kmdm!='" + strKmdm + "' and deflag='0' order by kmbm";
            ds = db.GetDataSet(strSql1);
            DataRow[] dr = ds.Tables["MyData"].Select("1=1");
            if (dr.Length > 0)
            {
                for (int i = 0; i < dr.Length; i++)
                {
                    TreeNode node2 = new TreeNode();                node2.Text = dr[i]["kmbm"].ToString().Trim() + " " + dr[i]["kmmc"].ToString().Trim();
                    node2.Value = dr[i]["kmdm"].ToString().Trim();
                    node2.NavigateUrl = "kmgl_Main.aspx?par=" + node2.Value;
                    node2.Target = "kmgl_Main";
                    node2.ImageUrl = "~/images/treeImage/d.gif";
                    node2.SelectAction = TreeNodeSelectAction.Expand;
                    node.ChildNodes.Add(node2);
                    CreateChildrenNode(dr[i]["kmdm"].ToString(), node2);            }        }
            else
            {
                return;
            }    }
    }从数据库动态生成的
      

  2.   

    遍历循环 无限递归  private Database db = new Database();
        protected void Page_Load(object sender, EventArgs e)
        {
            CreateNewTree();
            TreeView1.CollapseAll();
            if (Request.Params["Tree"] != null)
            {
                TreeView1.Nodes[0].Expand();
                TreeView1.Nodes[0].ImageUrl = "~/images/treeImage/c.gif";
                string strKmdm = Request.Params["Tree"].ToString().Trim();
                int length = strKmdm.Length / 3;
                foreach (TreeNode tn in TreeView1.Nodes[0].ChildNodes)
                {
                    if (tn.Value == strKmdm.Substring(0, 3))
                    {
                        tn.Expand();
                        //tn.Parent.Expand();
                        tn.Selected = true;
                        //tn.Parent.Selected = true;
                        tn.ImageUrl = "~/images/treeImage/c.gif";
                        //tn.Parent.ImageUrl = "~/images/treeImage/c.gif";
                        extend(tn, length, strKmdm);
                    }
                    else
                    {
                        tn.Selected = false;
                    }
                }
            }    }
        private void extend(TreeNode tn, int intDepth, string value)
        {
            foreach (TreeNode tnc in tn.ChildNodes)
            {
                for (int i = 1; i < intDepth + 1; i++)
                {
                    if (tnc.Value == value.Substring(0, 3 * i))
                    {
                        tnc.Expand();
                        tnc.Selected = true;
                        tnc.ImageUrl = "~/images/treeImage/c.gif";
                        extend(tnc, intDepth, value);
                    }
                    else
                    {
                        tnc.Selected = false;
                    }
                }
            }
        }
        private void CreateNewTree()
        {
            TreeNode FirstNode = new TreeNode();
            FirstNode.Text = "科目管理";
            FirstNode.Value = "0";
            FirstNode.SelectAction = TreeNodeSelectAction.Expand;        FirstNode.ImageUrl = "~/images/treeImage/d.gif";
            TreeView1.Nodes.Add(FirstNode);        #region 一级根
            DataSet ds1 = new DataSet();
            string strSql = "select * from kmgl where kmdm like '00_' and deflag='0' order by kmbm";
            ds1 = db.GetDataSet(strSql);
            DataRow[] dr1 = ds1.Tables["MyData"].Select("1=1");
            if (dr1.Length > 0)
            {
                for (int i = 0; i < dr1.Length; i++)
                {
                    TreeNode node1 = new TreeNode();
                    node1.Text = dr1[i]["kmbm"].ToString().Trim() + " " + dr1[i]["kmmc"].ToString().Trim();
                    node1.Value = dr1[i]["kmdm"].ToString().Trim();
                    node1.NavigateUrl = "kmgl_Main.aspx?par=" + node1.Value;
                    node1.Target = "kmgl_Main";
                    node1.ImageUrl = "~/images/treeImage/d.gif";
                    node1.SelectAction = TreeNodeSelectAction.Expand;
                    TreeView1.Nodes.Add(node1);
                    FirstNode.ChildNodes.Add(node1);
                    CreateChildrenNode(dr1[i]["kmdm"].ToString(), node1);
                }
            }
            else
            {
                return;
            }    }
            #endregion    /// <summary>
        /// 绑定树
        /// </summary>
        /// <param name="table">树数据集</param>
        /// <param name="strKmdm">父节点代码</param>
        /// <param name="node">父节点</param>
        private void CreateChildrenNode(string strKmdm, TreeNode node)
        {        // 子树集合
            DataSet ds = new DataSet();
            string strSql1 = "select * from kmgl where kmdm like '" + strKmdm + "___' and kmdm!='" + strKmdm + "' and deflag='0' order by kmbm";
            ds = db.GetDataSet(strSql1);
            DataRow[] dr = ds.Tables["MyData"].Select("1=1");
            if (dr.Length > 0)
            {
                for (int i = 0; i < dr.Length; i++)
                {
                    TreeNode node2 = new TreeNode();                node2.Text = dr[i]["kmbm"].ToString().Trim() + " " + dr[i]["kmmc"].ToString().Trim();
                    node2.Value = dr[i]["kmdm"].ToString().Trim();
                    node2.NavigateUrl = "kmgl_Main.aspx?par=" + node2.Value;
                    node2.Target = "kmgl_Main";
                    node2.ImageUrl = "~/images/treeImage/d.gif";
                    node2.SelectAction = TreeNodeSelectAction.Expand;
                    node.ChildNodes.Add(node2);
                    CreateChildrenNode(dr[i]["kmdm"].ToString(), node2);            }        }
            else
            {
                return;
            }    }