怎么让Treeview控件在重复点击节点时也触发SelectedNodeChanged事件

xpilot 2006-12-25 03:06:51
节点我已经设置为:
tn.SelectAction = TreeNodeSelectAction.Select;

现在我们需要每次点击选中节点时都能触发SelectedNodeChanged事件,即便是重复点击同一个节点也要触发,但是SelectedNodeChanged事件,只能在节点变化后才触发,有什么解决方法没有?或者添加其他事件?求教各位高手了...
...全文
608 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpp2017 2006-12-28
  • 打赏
  • 举报
回复
<asp:TreeView SelectedNodeStyle-CssClass="color:red;font-size:12px" ID="TreeView1" runat="server" AutoGenerateDataBindings="False" BorderStyle="None" EnableTheming="False" EnableViewState="true" ShowLines="True" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged"> <SelectedNodeStyle BackColor="Red" BorderStyle="Dotted" CssClass="color:red;font-size:12px" /> </asp:TreeView> private void _BindTree() { if (this.TreeView1.Nodes.Count > 0) this.TreeView1.Nodes.Clear(); DataTable TreeView1 = DataClass.ExecuteDataTable("select * from t_Dept"); DataRow[] rows = TreeView1.Select("ParentID = 0"); for (int i = 0; i < rows.Length; i++) { TreeNode node = new TreeNode(); node.Text = rows[i]["deptName"].ToString(); //node.ImageUrl ="../images/house.ico"; node.Value = rows[i]["Id"].ToString(); // node.Value = "9999"; this.TreeView1.Nodes.Add(node); this.AddChildNodes(ref TreeView1, ref node); } this.TreeView1.DataBind(); } private void AddChildNodes(ref DataTable TreeView1, ref TreeNode node) { DataRow[] rows = TreeView1.Select("ParentID=" + node.Value); for (int i = 0; i < rows.Length; i++) { TreeNode NewNode = new TreeNode(); NewNode.Text = rows[i]["deptName"].ToString(); //NewNode.ImageUrl ="../images/house.ico"; NewNode.SelectAction = TreeNodeSelectAction.Select; NewNode.Value = rows[i]["ID"].ToString(); //NewNode.Value = "888888"; this.AddChildNodes(ref TreeView1, ref NewNode); node.ChildNodes.Add(NewNode); } } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { Response.Write(DateTime.Now.ToString()); } -----难免有错,错了莫怪.
cpp2017 2006-12-28
  • 打赏
  • 举报
回复
我的代码就是最简单的代码。什么也没做。可每次触发 SelectedNodeChanged事件。 代码可以贴出来。 -----难免有错,错了莫怪.
xiuhe 2006-12-28
  • 打赏
  • 举报
回复
用OnClick事件就可以了
xpilot 2006-12-28
  • 打赏
  • 举报
回复
没有响应?自顶一下!
王哈呵 2006-12-27
  • 打赏
  • 举报
回复
用onclick 具体细节你可以自己试试
或者用NavigateUrl,每次连接到本页,并却传递回状态参数,根据参数来执行相应的操作
www_datasky_cn 2006-12-27
  • 打赏
  • 举报
回复
关注...
cpp2017 2006-12-27
  • 打赏
  • 举报
回复
不会啊.我选同一节点多次也能触发事件.
xpilot 2006-12-27
  • 打赏
  • 举报
回复
控件是2005里的treeview!

触发后要在事件中执行一系列操作,不是用来导航的,当然如果用NavigateUrl可以实现也行,不知道具体如何操作,能够给个详细点的例子!
xpilot 2006-12-27
  • 打赏
  • 举报
回复
to cpp2017(幕白兄):
能不能把你每次都触发SelectedNodeChanged事件的程序贴个出来看看,我这里做的如果不点击其他节点,重复点击同一节点确实SelectedNodeChanged事件只会触发一次。

to liaoxin009(小辛):
我试了好像treeview和treenode都没有类似attributes.add()这样可以添加onclick事件的属性。我看网络上有种变通的方法,就是在赋值节点文本时用<span onclick=""></span>
例如:tn.Text = <span onclick="alert('ok')">节点文本</span>
这样虽然是触发了onclick事件,但是客户端事件没有引发服务器回发,所以还是无法触发SelectedNodeChanged事件,不知道这是不是vs2005 treeview的bug?
ncjcz 2006-12-26
  • 打赏
  • 举报
回复
不知道你SelectedNodeChanged事件触发后是做什么
如果是导航的话
可以直接用Node的NavigateUrl属性
cpp2017 2006-12-25
  • 打赏
  • 举报
回复
2003还是2005? ------说错了莫怪。
广州人 2006-12-25
  • 打赏
  • 举报
回复
这冷清.帮你顶顶!
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧