树的一些东西

public partial class _Default : System.Web.UI.Page
{
    DataSet ds;
    protected void Page_Load(object sender, EventArgs e)
    {
        Sys mg = new Sys();
        ds = mg.createdataset("select * from aaa");
        if (!IsPostBack)
        {
            //ds = mg.createdataset("select * from aaa");//调用生成DATASET
            //TreeNode node=new TreeNode();
            //node.Text = "总商品";
            //TreeView1.Nodes.Add(node);
            Treechild(TreeView1.Nodes, "sysparentnode=''");//从0开始


        }
    }
    protected void Treechild(TreeNodeCollection Nds, string sqlwhere)//递归
    {
        DataView dv = new DataView();
        TreeNode chnode = new TreeNode();
        dv.Table = ds.Tables["Tree"];
        dv.RowFilter = sqlwhere;
        foreach (DataRowView drv in dv)
        {
            chnode = new TreeNode();
            chnode.Value = drv["zcpdm"].ToString().Trim() + "/" + drv["sysLevel"].ToString().Trim();//从编号; value 给予三个赋值 zcpdm,sysparentnode,sysLevel
            chnode.ToolTip = drv["zcpmc"].ToString();//主编号;
            chnode.Text = drv["zcpmc"].ToString();
            if (Convert.ToBoolean(drv["sysParentSgn"]))
            { chnode.Value = drv["zcpdm"].ToString().Trim() + "/" + drv["sysLevel"].ToString().Trim() + "/child"; }
            // tmpNode.ImageUrl
            // tmpNode.NavigateUrl
            Nds.Add(chnode);
            if (Convert.ToBoolean(drv["sysParentSgn"]))//如果 其子节点 是有的 则生成 个空节点
            {
                TreeNode des = new TreeNode();
                des.Text = " ";
                chnode.ChildNodes.Add(des);
                chnode.Expanded = false;
                //Nds = chnode.ChildNodes;
                //Nds.Add(des);
                //Nds.AddAt(Convert.ToInt32(drv["zcpdm"]), des);
                //chnode.ChildNodes.Add(des);

            }
            //this.Treechild(chnode.ChildNodes, Convert.ToInt32(chnode.Value));//递归
        }
    }

 

  protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
    {
         if (e.Node.Value.Contains("child"))//使用 Contains()函数 如果包括子结点  就不重建
        {
            e.Node.ChildNodes.Clear();
            string p_nodevalue = e.Node.Value.ToString();
            string sqlsyslevel = p_nodevalue.Substring(p_nodevalue.IndexOf("/") + 1, p_nodevalue.LastIndexOf("/") - p_nodevalue.IndexOf("/") - 1);//Substring (指定 从·· 到·) IndexOf()-LastIndexOf() 确定位置 "A/1/child";
            string sqlsysparentnode = p_nodevalue.Substring(0, p_nodevalue.IndexOf("/"));
            e.Node.Value = e.Node.Value.Replace("/child", "").Trim();//Replace()函数替换掉原来的,点击时候就不用重建
            Treechild(e.Node.ChildNodes, "sysparentnode like '" + sqlsysparentnode + "%' and sysLevel=" + Convert.ToString(Convert.ToInt32(sqlsyslevel) + 1));
            //sysparentnode like 'A%' and sysLevel=2
        }
        //if (e.Node.ChildNodes == null)
        //{ Label1.Text = "f"; }
        //else
        //    Label1.Text = "m";
        //for (int i = 0; i < TreeView1.Nodes.Count; i++)
        //{
        //    if (TreeView1.Nodes[i] != e.Node)
        //    {
        //        TreeView1.Nodes[i].Collapse();
        //    }
        //}

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值