注册 登录
编程论坛 ASP.NET技术论坛

[求助]TreeView控件问题

djccit 发布于 2006-04-07 08:37, 1260 次点击
小弟现遇一难题,就是我想利用TreeView控件来添加子树,
比如: 0123
--123
--1234
--456
--4567
--4568
这样的格式,我想通过一个添加过程能使用户自己添加子树,当点击顶层0123时,点击“添加”则就可以添加如上图中的123,456子树,再点击123或456时又可以添加下一级子树,

这段程序该了如何写呀,请大家帮帮我!

7 回复
#2
smalladam2006-04-07 09:05
点击事件。。。。。偶也迫切想知道....
#3
论坛元老2008-04-02 17:14
新手,学习中,支持
#4
hebingbing2008-04-02 17:32
说实话吧。我是一点也没有听明白你说了个什么东西,你是要动态添加吗?
那好歹也要给文本框什么的 啊?
…………
没有明白……
不知ls两位兄弟是怎么看明白的……
#5
1916381412008-04-02 18:36
按钮事件中的代码:
TreeNode tree1=new TreeNode("所定义的字节名");
this.treeview.SelectedNode.ChildNodes.Add(tree1);

当然如果想删除 把Add改为Remove.
#6
jalonlovesja2008-04-02 19:08
我明白咯
  我刚刚做过了
给你代码自己去看啊!!
void TreeBind()
    {
        TreeView1.Nodes.Clear();
        dv = Client.ClienteleByUID(int.Parse(Session["U_id"].ToString())) as DataView;
        foreach (DataRowView dvrow in dv)
        {
            if (dvrow["CLCode"].ToString().Trim().Length == 2)
            {
                TreeNode root = new TreeNode();
                root.Text = dvrow["CLName"].ToString();
                root.Value = dvrow["CLid"].ToString();
                root.Target = dvrow["CLCode"].ToString().Trim();
                TreeView1.Nodes.Add(root);
                CreateChildNode(root);
            }
            TreeView1.ExpandAll();
        }
    }
    void CreateChildNode(TreeNode parentNode)
    {
        foreach (DataRowView i in dv)
        {
            //遍历子节点的id长度0001=父节点的00+2子节点的Id截取0001(0,父节点长度)==00,比较子节点Id的前两位是否=父节点Id
            if (i["CLCode"].ToString().Trim().Length == parentNode.Target.Length + 2 && i["CLCode"].ToString().Trim().Substring(0, parentNode.Target.Length) == parentNode.Target)
            {
                TreeNode child = new TreeNode();
                child.Text = i["CLName"].ToString();
                child.Value = i["CLid"].ToString();
                child.Target = i["CLCode"].ToString().Trim();
                parentNode.ChildNodes.Add(child);
                CreateChildNode(child);
            }
            TreeView1.ExpandAll();
        }
    }
这是按扭事件里的:
int Su_id = int.Parse(ddlClientName.SelectedItem.Value);
        int U_id = int.Parse(Session["U_id"].ToString());
        string ProductsName = ddlName.SelectedItem.Text;
        string CLName = txtCLName.Text;
        string CLCode = "";
        DataView dv = Client.ClienteleByUID(U_id) as DataView;
        if (dv.Count > 0)
        {
            if (string.IsNullOrEmpty(TreeView1.SelectedValue))
            {
                ("请选择节点!");
            }
            else
            {
                string Code = TreeView1.SelectedNode.Target;//0
                //查询code所在的节点下有多少子节点再依次递增
                DataSet ds = Client.ClienteleByName(Code);
                int size = int.Parse(ds.Tables[0].Rows[0]["id"].ToString());//2               
                int js = size + 1;//2+1=3
                if (size > 9)
                    CLCode = Code + js.ToString();//0001+11
                else
                    CLCode = Code + "0" + js.ToString();//0001+0+3
            }
        }
        else
        {
            CLCode = "00";
        }
        if (Client.ClienteleAdd(CLName, CLCode, ProductsName, U_id, Su_id))
        {
            ("添加成功!");
        }
        else
        {
            ("添加失败!");
        }
        TreeBind();
#7
馨馨2008-04-03 21:56
回复 6# 的帖子
这段代码怎么用啊,,我不会啊 帮帮忙啊,谢谢了
#8
jalonlovesja2008-04-04 12:04
两个绑定的方法了,一个绑定父节点,一个子节点了
你把代码复制过来测试下了
 很好用的
1