treeview子节点事件无法触发
- C# code
private void loadtree() { TreeView1.Nodes.Clear(); TreeView1.Nodes.Add(new TreeNode("系统说明", "About", "")); TreeView1.Nodes.Add(new TreeNode("--------","xian")); TreeNode tn = new TreeNode("aaa", "yuyue"); tn.ChildNodes.Add(new TreeNode("bbb", "Registered", "", "~/A_Registered.aspx", "")); tn.ChildNodes.Add(new TreeNode("ccc", "RegistSelect", "", "~/S_RegistSelect.aspx", "")); //tn.ImageUrl = "~/images/menu_bt.jpg"; TreeView1.Nodes.Add(tn);
这是我加载treeview的代码。根节点是aaa,子节点是bbb和ccc.
但是我点击根节点aaa可以触发TreeView1_SelectedNodeChanged事件,可是点击bbb和ccc确无法触发事件,求解惑。
下面是我事件的代码,点击根节点,除了被选择的节点展开,其它的节点收缩。
可是点击根节点可以达到效果,点击任意子节点根本就无法触发事件。
我断点了,不触发事件
- C# code
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { int a=this.TreeView1.CheckedNodes.Count; int b = this.TreeView1.Nodes.Count; int c = this.TreeView1.SelectedNode.ChildNodes.Count; //int d = this.TreeView1.SelectedNode.Parent.ChildNodes.Count; for (int i = 0; i < this.TreeView1.Nodes.Count; i++) { if (this.TreeView1.SelectedValue == this.TreeView1.Nodes[i].Value) { this.TreeView1.SelectedNode.Expanded = true; } else { for (int j = 0; j < this.TreeView1.SelectedNode.ChildNodes.Count; j++) { this.TreeView1.SelectedNode.ChildNodes[j].CollapseAll(); } //this.TreeView1.SelectedNode.Parent.Expanded = true; this.TreeView1.SelectedNode.Expanded = true; } }
[解决办法]
treeView1_NodeMouseClick 事件面
[解决办法]
你可以试一下 用 treeView1_AfterSelect 是treeView的“在选定内容后发生”的事件里 写
[解决办法]
LZ:你想表达的意思是不是这样:
点击一个节点,就展开起所有子节点,收缩其他节点?
[解决办法]
LZ应该要写的应该是treeView1_AfterSelect事件。treeView1_SelectedNodeChanged是当选择的节点改变时才触发该事件,你的bbb和ccc都是aaa的子节点,所以你选择aaa节点后再点击bbb或ccc其实都没有改变选择的节点。
[解决办法]
如果是我说的那样,非常简单可以实现:
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
foreach(TreeNode node in treeView1.Nodes)
{
if (e.Node.Equals(node))
node.ExpandAll();
else
node.Collapse();
}
}
[解决办法]
Node1.Text = Row["DeptName"].ToString();
Node1.Expanded = true;
Node1.NavigateUrl = "www.baidu.com";
TvwCatalog.Nodes.Add(Node1);
分开写在添加。 不用什么事件。 只要
NavigateUrl 给值了就行
[解决办法]
5楼的不是说了吗,用treeView1_AfterSelect事件