TreeView保存当前节点展开状态【Draft Saved】
2012-06-15 14:54
375 查看
前台没有什么而设置,主要代码实现都是在后台。包括加载节点数据,保存当前节点Parent路径状态,设置当前节点展开状态。
Form_Load中:首先获取到保存的state状态,去遍历treeview所有节点,匹配。如果匹配成功,设置该节点Expended属性为true。
【图中Highlight部分,换成递归遍历更好,暂时没有实现。】
后台动态加载TreeView数据:
在SelectedNodeChanged()事件中添加当前状态的值:
(此处用的是TreeNode.Text, 而没用TreeeNode.ValuePath,因为Value值用来页面跳转了,与treeview的路径有一定出入。)
Form_Load中:首先获取到保存的state状态,去遍历treeview所有节点,匹配。如果匹配成功,设置该节点Expended属性为true。
【图中Highlight部分,换成递归遍历更好,暂时没有实现。】
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindHowNode(); BindReportNode(); BindDocNode(); BindLinksNode(); } if (Request.QueryString["state"] != null) { string state = Request.QueryString["state"].ToString(); foreach (TreeNode tn in tvAcc.Nodes) { if (tn.Text == state) { tn.Expanded = true; } foreach (TreeNode tn1 in tn.ChildNodes) { if (tn1.Text == state) { tn1.Expanded = true; } foreach (TreeNode tn2 in tn1.ChildNodes) { if (tn2.Text == state) { tn2.Expanded = true; } } } } } }
后台动态加载TreeView数据:
private void BindHowNode() { TreeNode rootHow = new TreeNode("How We Work", "How We Work", "", "#", ""); rootHow.Expanded = false; tvAcc.Nodes.Add(rootHow); HowBLL howBLL = new HowBLL(); DataTable dtHow = new DataTable(); dtHow = howBLL.GetItems(); for (int i = 0; i < dtHow.Rows.Count; i++) { string itemID = dtHow.Rows[i]["ID"].ToString(); string itemTitle = dtHow.Rows[i]["itemTitle"].ToString(); TreeNode treeDoc = new TreeNode(itemTitle, "HowWeWork.aspx?hid=" + itemID, "", "", ""); rootHow.ChildNodes.Add(treeDoc); } }
在SelectedNodeChanged()事件中添加当前状态的值:
(此处用的是TreeNode.Text, 而没用TreeeNode.ValuePath,因为Value值用来页面跳转了,与treeview的路径有一定出入。)
protected void tvAcc_SelectedNodeChanged(object sender, EventArgs e) { TreeNode tn = tvAcc.SelectedNode.Parent; if (Request.QueryString["state"] != null) { tn.Expanded = true; } string navUrl = tvAcc.SelectedNode.Value.ToString() + "&state=" + tn.Text; Response.Redirect(navUrl); }
相关文章推荐
- TreeView保存当前节点展开状态
- TreeView点击之后保持点击节点的方法 (展开后刷新仍保持展开状态的方法)
- C# 保存和读取TreeView展开的状态
- 如何在C#的TreeView控件中双击节点而不改变节点的展开/折叠状态
- TreeView双击节点而不改变节点的折叠/展开状态
- delphi 保存 和 打开 TREE VIEW的节点已经展开的状态
- KenDoTreeview刷新后展开的节点和选中的节点不变(KenDoTreeview中的数据通过KenDoGrid来进行保存、删除)
- winform如何保持TreeView节点展开和折叠的状态
- jQuery插件treeview点击节点名称不展开、收缩节点 分类: JavaScript 2014-06-16 20:28 539人阅读 评论(0) 收藏
- 怎么样避免treeview展开节点时刷新界面,而又可以执行selectedindexchanged事件
- TreeView节点选择影响其父子节点选中状态(递归)
- VS2005[C#] 轻轻松松 掌握 TreeView [ 回车展开节点, 鼠标右键,禁止闪屏....]
- C#中Winform的Treeview节点"正在展开..."的效果
- Android保存当前活动状态
- TreeView展开一个节点后,折叠其它节点
- (JavaScript)实现在客户端动态改变Treeview节点的选中状态
- jQuery插件treeview点击节点名称不展开、收缩节点 分类: JavaScript 2014-06-16 20:28 540人阅读 评论(0) 收藏
- MasterPage里使用TreeView保存状态功能
- TreeView父子联动效果保持节点状态一致
- zTree点击节点内容改变当前节点及下级(一级)节点的状态