TreeView控件SelectedNodeChange事件不触发

问题描述

下面代码的TreeView的SelectedNodeChange事件对于populatednode不触发。如果连续展开childnode,再点击展开的childnode,label也不会显示,并且TreeView缩回。求问怎么回事?多谢!usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;publicpartialclassTreeViewTest:System.Web.UI.Page{privateconstintCount=2;privatestring[]codeList={"th","os"};protectedvoidPage_Load(objectsender,EventArgse){updateTree();}protectedvoidupdateTree(){treePanel.Controls.Clear();TreeView[]treeList=newTreeView[Count];for(inti=0;i<Count;i++){vartree=newTreeView();tree.ID="treelist"+i.ToString();tree.TreeNodePopulate+=TreeBranch_SelectedNodePopulate;tree.SelectedNodeChanged+=TreeBranch_SelectedNodeChanged;stringcodeName=codeList[i];TreeNodecodeNode=newTreeNode(codeName,codeName);codeNode.SelectAction=TreeNodeSelectAction.Select;codeNode.PopulateOnDemand=true;tree.Nodes.Add(codeNode);tree.ExpandDepth=2;treePanel.Controls.Add(tree);treeList[i]=tree;}}protectedvoidTreeBranch_SelectedNodeChanged(objectsender,EventArgse){TreeViewtreeview=(TreeView)sender;stringtext=treeview.SelectedNode.Text;Label1.Text=text;}protectedvoidTreeBranch_SelectedNodePopulate(objectsender,TreeNodeEventArgse){LoadChildNode(e.Node);}publicvoidLoadChildNode(TreeNodeparentNode){TreeNodechildNode=newTreeNode("childNode","childNode");parentNode.ChildNodes.Add(childNode);childNode.PopulateOnDemand=true;}}

解决方案

解决方案二:
tree.TreeNodePopulate+=TreeBranch_SelectedNodePopulate;tree.SelectedNodeChanged+=TreeBranch_SelectedNodeChanged;你为什么要把注册事件写进循环里你知道这样写是给treeview注册了几遍事件吗
解决方案三:
你不如把事件直接写进前台aspx的treeview的属性里而不是在后台代码里动态乱加事件

时间: 2025-01-27 05:15:50

TreeView控件SelectedNodeChange事件不触发的相关文章

在 ASP.NET 页面中使用 TreeView 控件

一.            下载源码 http://www.asp.net/IEWebControls/IEWebControls.exe   二.            安装及编译 1.执行安装文件后,在安装目录找到 "build.bat"文件,用记事本将其打开.把"csc.exe"换成绝对路径"C:/WINNT/Microsoft.NET/Framework/v1.1.4322/csc.exe".保存后执行(记得把"只读"

JavaScript调用Activex控件的事件的实现方法_javascript技巧

书写成这样: <SCRIPT type="text/javascript" FOR="activexID" EVENT="onXXXevent()" > // js 处理具体内容. </SCRIPT> 当acitveX控件 onXXXevent()事件被触发时,调用此方法. 如果一个半个的话还好说,几十个这样的函数,把我的页面占据的满满的.况且在VS2008中,"设置选定内容格式化"总是提示:"

c#treeview控件问题-c#中treeview控件插入节点

问题描述 c#中treeview控件插入节点 在该控件中,,两节点之间插入一个节点,,大虾,,求救,,......... 解决方案 var tn = new TreeNode("1111"); treeview1.Nodes[n].Nodes.Add(tn); tn.Next = treeview1.Nodes[n].Nodes[原先的第二个节点]; 解决方案二: C# treeview控件部分节点添加checkboxC# TreeView控件中的nodemouseclick事件C#t

TreeView控件的双击事件

treeview|控件 本例实现双击节点,弹出对话框并显示节点信息 先对treeview1加入些数据,代码如下: Sub Example() Dim N As New TreeNode, I As Integer, J As Integer For I = 0 To 3 With N.Nodes.Add((I * 15).ToString & "-" & ((I + 1) * 15 - 1).ToString) For J = 0 To 14 .Nodes.Add((J

如何暂时挂起(不触发)控件的事件

问题描述 有一窗体,上有一数据源,与若干控件,当控件与数据源进行绑定时,会触发ValueChanged事件,但我想在数据绑定时不触发该事件,而只在手动改变控件值时才触发该事件.我的想法是在数据绑定前暂时挂起控件的事件,但不知如何处理,或有更好的方法. 解决方案 解决方案二:绑定前,不要添加该事件(设计阶段去除该控件的该事件),在绑定之后,添加该事件的委托到控件中.如控件的事件假设为:privatevoid控件_ValueChanged(.....){//控件事件}在绑定之后执行如下代码:控件.V

ASP.NET中TreeView控件使用小结

asp.net|treeview|控件 中国IT动力,最新最全的IT技术教程最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论 ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql 服务器 Win2000

高手们帮帮忙啊!关于Treeview控件的问题

问题描述 对Treeview控件空白处进行鼠标右键点击没对节点进行点击时怎样使contextMenuStrip不出现,还有就是右键点击了节点contextMenuStrip也出现了!但是我一松右键节点马上跳到前一次节点上去了,我不想节点跳回去,就想节点停在我当前右键点击的这个节点.高手们帮帮忙啊! 解决方案 解决方案二:来个高手解决下啊!急急急急啊!解决方案三:用beforeExpand事件和afterSelect事件.解决方案四:高手貌似不行啊!我是鼠标右键点击空白处怎么会触发那2个事件呢!迷

VB6将XML数据传入TreeView控件

treeview|xml|控件|数据 由于XML文档是以树形结构为格式,所以通常采用TreeView控件显示它们.以下码段说明了如何在Visual Basic 6将XML文档传入一个TreeView控件. 首先,建立一个新的带有窗体的Visual Basic 6工程,然后在窗体中添加一个TreeView控件,并添加一个引用到微软XML解析器. 接着,在Form_Load事件中添加如下的代码:   Private Sub Form_Load()Dim objDOM As DOMDocument S

创建可编辑的xml文档(之五)执行中的treeview 控件

treeview|xml|创建|控件|执行 执行中的treeview 控件  为了更完美,列表4包含了VB.NET version, or C# version 两个版本的最终treevie 控件.为了更容易使用,我重新定义了结构和代码.同时增加了KeyDown 控制来支持一些默认的快捷键例如:Control-N (新建), F2 (编辑), 和DEL (删除).  这里好象不必附加任何事件,因此最终的api 包含一个方法和八个属性,他们在表1中列出来了,他们大多数都是简单的标志,或者默认的开关