Treeview怎样选中某个节点

无谓生活 2011-07-07 10:06:00
网页中的动态生成的TreeView,修改某个节点的值,点保存后页面刷新,节点就会自动收缩。有什么办法,可以展开刚修改过的这个节点的父节点,并且选中这个修改的节点。。

高手帮帮忙~~感激不尽~~
...全文
611 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
无谓生活 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sp1234 的回复:]
我给你写个demo

HTML code

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.……
[/Quote]

你这种方法看起来很不错,不过选中节点的事件怎么处理啊?
chen_ya_ping 2011-07-07
  • 打赏
  • 举报
回复
记录选择的那一个节点,然后找到到就OK了啊。
gengchenhui 2011-07-07
  • 打赏
  • 举报
回复
有时间得看看sp的demo什么意思...
无谓生活 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 coxie007 的回复:]
你可以用以个hidden你点击修改的节点的value,然后修改成功以后,自动展开,并TreeView的selectedValue=Hidden.value;就ok了。
[/Quote]
selectNode是只读的。。。赋不了值啊。。
  • 打赏
  • 举报
回复
我给你写个demo
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="回发测试" onclick="Button1_Click" /> <asp:Button ID="Button2"
runat="server" Text="创建树" onclick="Button2_Click" />
<hr />
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</form>
</body>
</html>
using System;
using System.Drawing;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (ViewState["treeview"] != null && (bool)ViewState["treeview"])
PlaceHolder1.Controls.Add(new TreeView { ID = "myTestTree" });
}
protected void Button1_Click(object sender, EventArgs e)
{

}
protected void Button2_Click(object sender, EventArgs e)
{
PlaceHolder1.Controls.Clear();
var tr = new TreeView { ID = "myTestTree" };
PlaceHolder1.Controls.Add(tr);
tr.ShowLines = true;
tr.SelectedNodeStyle.BackColor= Color.LightCyan;
var n = new TreeNode { Text = "n1" };
tr.Nodes.Add(n);
n = new TreeNode { Text = "n2" };
tr.Nodes.Add(n);
var m = new TreeNode { Text = "n3" };
n.ChildNodes.Add(m);
ViewState["treeview"] = true;
}
}

注意page_load中是如何重建TreeView的。你可以运行它,设置收缩、选中节点,然后点击“回发测试”按钮看看状态并不会丢失。

如果你多此一举地在page_load中额外设置它的属性,反而就是画蛇添足了。
  • 打赏
  • 举报
回复
[Quote=引用楼主 lee4755026 的回复:]
网页中的动态生成的TreeView,修改某个节点的值,点保存后页面刷新,节点就会自动收缩。有什么办法,可以展开刚修改过的这个节点的父节点,并且选中这个修改的节点。。

高手帮帮忙~~感激不尽~~
[/Quote]

动态生成的TreeView,刷新之后就没了。

假设你在page_load中重建TreeView,要注意千万不要重建节点。只要重建TreeView控件(并且保证其ID跟上一次输出html时使用的ID一样),那么asp.net就会自动给你填充和重建所有节点的。
flyerwing 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xuexiaodong2009 的回复:]
treenode又展开的属性
TreeView.selectNode设置选中节点
[/Quote]
是的.
xuexiaodong2009 2011-07-07
  • 打赏
  • 举报
回复
treenode又展开的属性
TreeView.selectNode设置选中节点
coxie007 2011-07-07
  • 打赏
  • 举报
回复
你可以用以个hidden你点击修改的节点的value,然后修改成功以后,自动展开,并TreeView的selectedValue=Hidden.value;就ok了。
子夜__ 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lee4755026 的回复:]

自己顶一下,希望能被更多的高手看到。。。呵呵~
[/Quote]
5楼的就可以了

用ViewState保存选中的节点 操作完之后在取出来 展开
无谓生活 2011-07-07
  • 打赏
  • 举报
回复
自己顶一下,希望能被更多的高手看到。。。呵呵~
无谓生活 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sp1234 的回复:]
引用楼主 lee4755026 的回复:
网页中的动态生成的TreeView,修改某个节点的值,点保存后页面刷新,节点就会自动收缩。有什么办法,可以展开刚修改过的这个节点的父节点,并且选中这个修改的节点。。

高手帮帮忙~~感激不尽~~


动态生成的TreeView,刷新之后就没了。

假设你在page_load中重建TreeView,要注意千万不要重建节点。只要重建TreeVi……
[/Quote]
树的每个节点都是从数据库读取的,修改节点时数据库都改了,不重建节点不行吧?

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧