当前位置:编程学习 > C#/ASP.NET >>

永远爱与恨的treeview

#region 生成单位结点

        private void InitOrganization()
        {
            Organization[] orgs = RemoteServer.SysWebService.GetOrganization();
            foreach (Organization org in orgs)
            {
                TreeNode node = new TreeNode(org.Name.Trim(), org.ID.ToString());

                AddNewNode(null, node);
            }
        }

        #endregion
#region 生成部门结点

        private void InitDepartment()
        {
            Department[] deps = RemoteServer.SysWebService.GetDepartment();

            foreach (TreeNode pNode in TreeView1.Nodes)
            {
                int orgID = pNode.Value.ToInt32();
                var depsTop = from Department dep in deps
                              where dep.OrganizationID == orgID && dep.PID == null
                              select dep;
                foreach (Department depTop in depsTop)
                {
                    TreeNode node = new TreeNode(depTop.Name.Trim(), depTop.ID.ToString(), null, null, depTop.OrganizationID.ToString());
                    AddNewNode(pNode, node);

                    InitDepartment(node, deps);
                }
            }
        }

        private void InitDepartment(TreeNode pNode, Department[] deps)
        {
            var depsTemp = from Department dep in deps
                           where dep.PID == (int?)pNode.Value.ToInt32()
                           select dep;
            foreach (Department dep in depsTemp)
            {
                TreeNode node = new TreeNode(dep.Name.Trim(), dep.ID.ToString(), null, null, dep.OrganizationID.ToString());
                AddNewNode(pNode, node);

                InitDepartment(node, deps);
            }
        }

        #endregion

#region 增加结点

        private void AddNewNode(TreeNode pNode, TreeNode node)
        {
            if (pNode == null)
                TreeView1.Nodes.Add(node);
            else
                pNode.ChildNodes.Add(node);
        }

        #endregion


各位哥哥们,这个是我的treeview生成的树,数据据从WEB服务取,在页面上我有一个textbox和一个gridview,我选择某一个结点后,右边的gridview会从数据库里按照指定的这个结点的ID查找出相应的数据项并显示出来。但是当我在textbox增加一项数据的时候,gridview是更新了,但是那个treeview并没有更新啊,还有我在gridview里编辑,删除的时候,都没有更新。我想了一下,用ajax技术可以实现更新,但是这个时候整个树都刷新了,我原来所选择的结点出失去了焦点,我想更新的时候,树更新,GRIDVIEW也更新,但是依然是我所选择的那个结点,有没有办法实现啊,请教各位了,搞了好长时间了,还没做出来。惭愧啊,请教各位高手,还有做过TREEVIEW和AJAX方面的专家了! --------------------编程问答-------------------- gridview里编辑,删除的时候,触发事件,重新进行treeview绑定才可以啊。 --------------------编程问答-------------------- 哥哥,如果你仔细看我的代码的话,相信你不会这样说的,我既然知道要绑定GRIDVIEW,自然也知道绑定TREEVIEW,但是我这地方不是绑定的 --------------------编程问答--------------------  
GRIDVIEW修改以后,肯定要重新生成treeview才可以时时更新。
还有你说更新后是依然是我所选择的那个结点:
string selectedPath = treeCategories.SelectedNode.ValuePath;
        treeCategories.DataBind();
        treeCategories.FindNode(selectedPath).Select();

其它等待高手吧 --------------------编程问答-------------------- 客户段去操作treeview了。最好继承treeview扩展treeview --------------------编程问答-------------------- 用TreeView的SelectedNodeChanged事件记录当前选中的结点,TreeView更新后再重新选中这个结点。 --------------------编程问答-------------------- 我选择某一个结点后,右边的gridview会从数据库里按照指定的这个结点的ID查找出相应的数据项并显示出来。

--------------------

这个操作是怎么实现的呢?
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,