问答文章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

我来回答

2个回答

懂视网 时间: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

PF中的 TreeView 控件 也是属于“条目控件”一类,拥有Items属性。每个TreeViewItem 都有一个 IsSelected属性,用于来设置是否被选中。 当然,选中之前 要先根据node的名称找到TreeViewItem,通过 TreeView 的ItemContainerGenerator.ContainerFromIndex 方法 找到item,再设置 IsSelected即可。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 房产官司律师费多少 上海阿姨用锄头锄地,将小区草地变自家“菜地”,为何会引发网友争议? 剑网3 如何锻造铜锭 符文工房3农具列表 愚人节整人寄语 愚人节整人短信? 求数条愚人节祝福短信 愚人节,跪求整人短信 愚人节精典整人短信 如何选中treeview中的节点 武汉重启 | 东风汽车等风来 假海蜇是用什么做的? 还在吃假海蜇?分分钟会变傻的喔 在买海蜇的时候,我们该如何去辨别真伪? 为什么wifi*可以连接热点却显示自动连接,不是wifi*连接,自动连接连不上 两个手机用同一个两个手机都能看到聊天记录吗? 两个手机用同一个两个手机都能看到聊天记录吗? 如果不是同一个手机,但是是一个能找会聊天记录吗? 用两个人的能查出聊天记录吗? 两个手机用同一个两个手机都能看到聊天记录吗? 我的如果在别人的手机上登录会看到我的聊天记录吗? 谁能用“忽悠”给我造个句子。 一个可以建几个微信群都是多少人 有没有p图大神能把下面这张拖鞋图片p成剪断成两半的样子吗 &#xE768;? 没有p图大神能把下面这张拖鞋壳图片p成剪断成两半的样子吗 &#xE768;? 今天中午吃完饭刚走出来突然拖鞋断了,这是代表着什么征兆呢?是不是不好的征兆 拖鞋平白无故就断了是怎么回事好灵异 早上准备出门,拖鞋突然断了,是好还是坏 有大神能帮我把图片里的拖鞋P成被剪掉的样子吗 为什么我的拖鞋鞋跟断了?有什么征兆,是不是最近不能出门了,我也正好不想出去找工作 凉拖鞋坏了底子没坏能用吗? 拖鞋断了 微信聊天记录删除又出现怎么回事?18年.19年,20年.3条已经删除的微信突然又出现了,是为什么_百度问一问 三根线电磁阀换二根线电磁阀怎么接线? 直流电磁阀接线有正负之分吗直流电磁阀有正负之分吗 武装斗争的实质是?如果选项有工农联合的反军阀战争,这个选项里面主语是 工农联合 错了吗? 为什么说农民是无产阶级的同盟军 目前全球存在的经济联合体有哪些,为什么? 为什么说中国的统治阶级是工人阶级 广州市革命历史报告 黄永和烈士是怎么牺牲的,在什么地方牺牲的