永远爱与恨的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