<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="TreeViewTest.aspx.cs"
Inherits="VS2013Test.RightMgm.TreeViewTest" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script language="javascript" type="text/javascript">
function postBackByObject() {
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox") {
__doPostBack("", "");
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TreeView ID="TreeView1" runat="server" ShowLines="True"
onclick="javascript:postBackByObject()"
OnSelectedNodeChanged="TreeView1_SelectedNodeChanged"
OnTreeNodeCheckChanged="TreeView1_TreeNodeCheckChanged">
</asp:TreeView>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="EXPEND" />
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="COLSPEND" />
<asp:Button ID="Button4" runat="server" OnClick="Button4_Click" Text="SetSelectNode" />
</form>
</body>
</html>
----------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace VS2013Test.RightMgm
{
public partial class TreeViewTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//TreeNode newNode = null;
//newNode = new TreeNode("1");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes.Add(newNode);
//newNode = new TreeNode("11");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes[0].ChildNodes.Add(newNode);
//newNode = new TreeNode("12");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes[0].ChildNodes.Add(newNode);
//newNode = new TreeNode("2");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes.Add(newNode);
//newNode = new TreeNode("21");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes[1].ChildNodes.Add(newNode);
//newNode = new TreeNode("22");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes[1].ChildNodes.Add(newNode);
TreeNode root = new TreeNode("root");
TreeNode level1 = new TreeNode();
level1.Text = "1";
level1.Value = "1";
level1.ShowCheckBox = true;
TreeNode child = new TreeNode("11");
child.ShowCheckBox = true;
level1.ChildNodes.Add(child);
child = new TreeNode("12");
child.ShowCheckBox = true;
level1.ChildNodes.Add(child);
//TreeView1.Nodes.Add(level1);
root.ChildNodes.Add(level1);
//--------------------------------
level1 = new TreeNode("2", "2");
level1.ShowCheckBox = true;
child = new TreeNode("21");
child.ShowCheckBox = true;
level1.ChildNodes.Add(child);
child = new TreeNode("22");
child.ShowCheckBox = true;
level1.ChildNodes.Add(child);
//TreeView1.Nodes.Add(level1);
root.ChildNodes.Add(level1);
TreeView1.Nodes.Add(root);
}
}
//取得所有勾選的node的值
protected void Button1_Click(object sender, EventArgs e)
{
string strText = string.Empty;
foreach (TreeNode oNode in this.TreeView1.CheckedNodes)
{
if (oNode.Checked)
{
strText += oNode.Text + "/" ;
}
}
TextBox1.Text = strText;
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
TextBox1.Text = TreeView1.SelectedNode.Text;
}
//要加上 function postBackByObject()
protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
//if (TreeView1.CheckedNodes.Count > 0)
//{
// foreach (TreeNode node in TreeView1.CheckedNodes)
// {
// TextBox1.Text += node.Text + "/";
// }
//}
if(e.Node.Checked == true) //勾選父 連動子全勾選
{
if (e.Node.ChildNodes.Count > 0)
{
foreach(TreeNode node in e.Node.ChildNodes)
{
node.Checked = true;
}
}
}
if (e.Node.Checked == false) //子取消勾選 連動父取消勾選
{
if (e.Node.Parent != null)
{
e.Node.Parent.Checked = false;
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
TreeView1.ExpandAll();
}
protected void Button3_Click(object sender, EventArgs e)
{
TreeView1.CollapseAll();
}
//設定選取的node
protected void Button4_Click(object sender, EventArgs e)
{
foreach (TreeNode n in TreeView1.Nodes)
{
SelectNodeByValue(n,"21");
}
}
protected void SelectNodeByValue(TreeNode Node, string ValueToSelect)
{
foreach (TreeNode n in Node.ChildNodes)
{
if (n.Text == ValueToSelect) //看用value or text找
{
n.Select();
n.Checked = true;
}
else
{
SelectNodeByValue(n, ValueToSelect);
}
}
}
}
}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script language="javascript" type="text/javascript">
function postBackByObject() {
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox") {
__doPostBack("", "");
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TreeView ID="TreeView1" runat="server" ShowLines="True"
onclick="javascript:postBackByObject()"
OnSelectedNodeChanged="TreeView1_SelectedNodeChanged"
OnTreeNodeCheckChanged="TreeView1_TreeNodeCheckChanged">
</asp:TreeView>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="EXPEND" />
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="COLSPEND" />
<asp:Button ID="Button4" runat="server" OnClick="Button4_Click" Text="SetSelectNode" />
</form>
</body>
</html>
----------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace VS2013Test.RightMgm
{
public partial class TreeViewTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//TreeNode newNode = null;
//newNode = new TreeNode("1");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes.Add(newNode);
//newNode = new TreeNode("11");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes[0].ChildNodes.Add(newNode);
//newNode = new TreeNode("12");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes[0].ChildNodes.Add(newNode);
//newNode = new TreeNode("2");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes.Add(newNode);
//newNode = new TreeNode("21");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes[1].ChildNodes.Add(newNode);
//newNode = new TreeNode("22");
//newNode.ShowCheckBox = true;
//TreeView1.Nodes[1].ChildNodes.Add(newNode);
TreeNode root = new TreeNode("root");
TreeNode level1 = new TreeNode();
level1.Text = "1";
level1.Value = "1";
level1.ShowCheckBox = true;
TreeNode child = new TreeNode("11");
child.ShowCheckBox = true;
level1.ChildNodes.Add(child);
child = new TreeNode("12");
child.ShowCheckBox = true;
level1.ChildNodes.Add(child);
//TreeView1.Nodes.Add(level1);
root.ChildNodes.Add(level1);
//--------------------------------
level1 = new TreeNode("2", "2");
level1.ShowCheckBox = true;
child = new TreeNode("21");
child.ShowCheckBox = true;
level1.ChildNodes.Add(child);
child = new TreeNode("22");
child.ShowCheckBox = true;
level1.ChildNodes.Add(child);
//TreeView1.Nodes.Add(level1);
root.ChildNodes.Add(level1);
TreeView1.Nodes.Add(root);
}
}
//取得所有勾選的node的值
protected void Button1_Click(object sender, EventArgs e)
{
string strText = string.Empty;
foreach (TreeNode oNode in this.TreeView1.CheckedNodes)
{
if (oNode.Checked)
{
strText += oNode.Text + "/" ;
}
}
TextBox1.Text = strText;
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
TextBox1.Text = TreeView1.SelectedNode.Text;
}
//要加上 function postBackByObject()
protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
//if (TreeView1.CheckedNodes.Count > 0)
//{
// foreach (TreeNode node in TreeView1.CheckedNodes)
// {
// TextBox1.Text += node.Text + "/";
// }
//}
if(e.Node.Checked == true) //勾選父 連動子全勾選
{
if (e.Node.ChildNodes.Count > 0)
{
foreach(TreeNode node in e.Node.ChildNodes)
{
node.Checked = true;
}
}
}
if (e.Node.Checked == false) //子取消勾選 連動父取消勾選
{
if (e.Node.Parent != null)
{
e.Node.Parent.Checked = false;
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
TreeView1.ExpandAll();
}
protected void Button3_Click(object sender, EventArgs e)
{
TreeView1.CollapseAll();
}
//設定選取的node
protected void Button4_Click(object sender, EventArgs e)
{
foreach (TreeNode n in TreeView1.Nodes)
{
SelectNodeByValue(n,"21");
}
}
protected void SelectNodeByValue(TreeNode Node, string ValueToSelect)
{
foreach (TreeNode n in Node.ChildNodes)
{
if (n.Text == ValueToSelect) //看用value or text找
{
n.Select();
n.Checked = true;
}
else
{
SelectNodeByValue(n, ValueToSelect);
}
}
}
}
}