问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何选中treeview中的节点

发布网友 发布时间:2022-04-24 06:33

我来回答

3个回答

懂视网 时间:2022-04-24 10:54

网上有很多控制TreeView的checkbox选中,但是自己尝试的时候,要么报错,要么不可行。以下这种写法是经过验证有效的,仅作参考,思维比较巧妙!

Tree:

<asp:TreeView ID="treeViewDapartment" runat="server" SelectedNodeStyle-BackColor="GrayText" onclick="javascript:NodeCheck();"
 Font-Size="13px" ShowCheckBoxes="All" ShowLines="true" AutoGenerateDataBindings="false" ShowExpandCollapse="true" >
</asp:TreeView>

脚本:

<script language="javascript" type="text/javascript">
 //节点父节点选中子节点全选
 function NodeCheck() { 
 var o = window.event.srcElement;
 if (o.tagName == "INPUT" && o.type == "checkbox") //点击treeview的checkbox是触发
 {
 var d = o.id; //获得当前checkbox的id;
 var e = d.replace("CheckBox", "Nodes"); //通过查看脚本信息,获得包含所有子节点div的id
 var div = window.document.getElementById(e); //获得div对象
 if (div != null) //如果不为空则表示,存在自节点
 {
  var check = div.getElementsByTagName("INPUT"); //获得div中所有的已input开始的标记
  for (i = 0; i < check.length; i++) {
  if (check[i].type == "checkbox") //如果是checkbox
  {
  check[i].checked = o.checked; //字节点的状态和父节点的状态相同,即达到全选
  }
  }
 }
 else //点子节点的时候,使父节点的状态改变,即不为全选
 {
  var divid = o.parentElement.parentElement.parentElement.parentElement.parentElement; //子节点所在的div 
  var id = divid.id.replace("Nodes", "CheckBox"); //获得根节点的id
 
  var checkbox = divid.getElementsByTagName("INPUT"); //获取所有子节点数
  var s = 0;
  for (i = 0; i < checkbox.length; i++) {
  if (checkbox[i].checked) //判断有多少子节点被选中
  {
  s++;
  }
  }
  if (s == checkbox.length) //如果全部选中 或者 选择的是另外一个根节点的子节点 ,
  {  // 则开始的根节点的状态仍然为选中状态
  window.document.getElementById(id).checked = true;
  }
  else {  //否则为没选中状态
  window.document.getElementById(id).checked = false;
  }
 }
 
 }
 }
</script>

这个脚本的写法巧妙运用生成的页面源文件中checkbox与其子结点div之间的关系!

那么,只需要在注册一下触发事件即可:

protected void Page_Load(object sender, EventArgs e)
{ 
 this.treeViewDapartment.Attributes.Add("onclick", "NodeCheck();");
 
}

热心网友 时间:2022-04-24 08:02

给TreeView绑定初始数据后.实际上TreeView中没有节点是被选中的状态,所以treeView1.SelectedNode == null

===解决办法===
在绑定数据后指定一个节点的选中状态
if(treeView1.Nodes.Count > 0)
{
treeView1.SelectedNode = treeView1.Nodes[0];
}

给tn赋值前判断一下
if(treeView1.SelectedNode != null)
{
tn =treeView1.SelectedNode;
}
=========

热心网友 时间:2022-04-24 09:20

treeView1.SelectedNode = treeView1.Nodes[0];//选中第一个结点

treeView1.SelectedNode = treeView1.Nodes["TreeNode1"];//选中名称为TreeNode1的结点
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 武汉重启 | 东风汽车等风来 假海蜇是用什么做的? 还在吃假海蜇?分分钟会变傻的喔 在买海蜇的时候,我们该如何去辨别真伪? 为什么wifi*可以连接热点却显示自动连接,不是wifi*连接,自动连接连不上 两个手机用同一个两个手机都能看到聊天记录吗? 两个手机用同一个两个手机都能看到聊天记录吗? 如果不是同一个手机,但是是一个能找会聊天记录吗? 用两个人的能查出聊天记录吗? 两个手机用同一个两个手机都能看到聊天记录吗? 我的如果在别人的手机上登录会看到我的聊天记录吗? 两个手机用同一个两个手机都能看到聊天记录吗? 大白菜炒肉怎样炒好吃 我的如果在别人的手机上登录会看到我的聊天记录吗? 两人共用一个,一方删除了聊天记录,另一方还能看见以前的聊天记录吗? 通过查到对方聊天记录 电脑和手机同用一个,电脑能看见手机聊天记录吗? 可以通过找回删除的微信聊天记录吗? 侦探公司能不能通过就能查到别人半年的聊天记录 两个手机用同一个两个手机都能看到聊天记录吗? 愚人节精典整人短信 愚人节,跪求整人短信 求数条愚人节祝福短信 愚人节整人短信? 愚人节整人寄语 符文工房3农具列表 剑网3 如何锻造铜锭 上海阿姨用锄头锄地,将小区草地变自家“菜地”,为何会引发网友争议? treeview怎么将节点设置为选中状态 谁能用“忽悠”给我造个句子。 一个可以建几个微信群都是多少人 有没有p图大神能把下面这张拖鞋图片p成剪断成两半的样子吗 &#xE768;? 没有p图大神能把下面这张拖鞋壳图片p成剪断成两半的样子吗 &#xE768;? 今天中午吃完饭刚走出来突然拖鞋断了,这是代表着什么征兆呢?是不是不好的征兆 拖鞋平白无故就断了是怎么回事好灵异 早上准备出门,拖鞋突然断了,是好还是坏 有大神能帮我把图片里的拖鞋P成被剪掉的样子吗 为什么我的拖鞋鞋跟断了?有什么征兆,是不是最近不能出门了,我也正好不想出去找工作 凉拖鞋坏了底子没坏能用吗? 拖鞋断了