Treeview怎样选中某个节点
网页中的动态生成的TreeView,修改某个节点的值,点保存后页面刷新,节点就会自动收缩。有什么办法,可以展开刚修改过的这个节点的父节点,并且选中这个修改的节点。。高手帮帮忙~~感激不尽~~ --------------------编程问答-------------------- 你可以用以个hidden你点击修改的节点的value,然后修改成功以后,自动展开,并TreeView的selectedValue=Hidden.value;就ok了。 --------------------编程问答-------------------- treenode又展开的属性
TreeView.selectNode设置选中节点 --------------------编程问答--------------------
是的. --------------------编程问答--------------------
动态生成的TreeView,刷新之后就没了。
假设你在page_load中重建TreeView,要注意千万不要重建节点。只要重建TreeView控件(并且保证其ID跟上一次输出html时使用的ID一样),那么asp.net就会自动给你填充和重建所有节点的。 --------------------编程问答-------------------- 我给你写个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中额外设置它的属性,反而就是画蛇添足了。 --------------------编程问答--------------------
selectNode是只读的。。。赋不了值啊。。 --------------------编程问答-------------------- 有时间得看看sp的demo什么意思... --------------------编程问答-------------------- 记录选择的那一个节点,然后找到到就OK了啊。 --------------------编程问答--------------------
你这种方法看起来很不错,不过选中节点的事件怎么处理啊? --------------------编程问答--------------------
树的每个节点都是从数据库读取的,修改节点时数据库都改了,不重建节点不行吧? --------------------编程问答-------------------- 自己顶一下,希望能被更多的高手看到。。。呵呵~ --------------------编程问答--------------------
5楼的就可以了
用ViewState保存选中的节点 操作完之后在取出来 展开
补充:.NET技术 , ASP.NET