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

先定义了一个类
public class TreeViewIconsItem : TreeViewItem
{
ImageSource iconSource;
TextBlock textBlock;
Image icon;
public TreeViewIconsItem()
{
StackPanel stack = new StackPanel();
//  设置StackPanel中的内容水平排列
stack.Orientation = Orientation.Horizontal;
Header = stack;
icon = new Image();
icon.Source = iconSource;
//  向StackPanel对象中添加一个图标对象
stack.Children.Add(icon);
//  创建用于添加文本信息的TextBlock对象
textBlock = new TextBlock();
//  向StackPanel对象中添加文本信息
stack.Children.Add(textBlock);
}
//  用于设置或获得节点中的图标对象
public ImageSource Icon
{
set
{
iconSource = value;
icon.Source = iconSource;
icon.Width = 16;
icon.Height = 16;
}
get
{
return iconSource;
}
}
//  用于设置或获得节点中的文本信息
public string HeaderText
{
set
{
textBlock.Text = value;
}
get
{
return textBlock.Text;
}
}
} 

加载数据时:TreeViewIconsItem tvii = new TreeViewIconsItem();tvii.HeaderText = s;TreeViewIconsItem tviiSub = new TreeViewIconsItem();tviiSub.HeaderText = friend[1];tvii.Items.Add(tviiSub);treeview1.Items.Add(tvii);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 汉服特点 汉服穿法左右衣领 『国学馆』为什么汉服衣襟有左右之分 为什么汉服是左衽右领? 风筝太大女孩被意外带上天,工作人员却说她主要要求的,此举有何风险? 上古卷轴5怎么有声音,只能旋转视角,人物都定住不动???我第一关下了马车就这样了,声音有,也能转视角 上古卷轴5装了sexlab怎么转视角 上古卷轴5,不小心把家里的盘子撞翻了整理回原样好麻烦,长按E放东西总是放倒,有什么按键可以旋转长按 爱彼有十万以下的表吗 上古卷轴5 斩杀动作 爱彼手表最便宜的需要多少钱? 上古卷轴5 抓取物品时怎么旋转方向啊 上古卷轴5如何在移动时360度观察 appid账号忘记了怎么办急求 有那些漂亮的女明星是单眼皮的? 中国共产党的发展大致分为几个阶段? 农民阶级,封建地主阶级和资产阶级维新派探索国家出路失败的共同原因,详细点的 黄永和烈士是怎么牺牲的,在什么地方牺牲的 广州市革命历史报告 为什么说中国的统治阶级是工人阶级 怎么判断长痘痘是内分泌还是细菌导致的? 使用js如何获取treeview控件的当前选中的节点 成人高考招生老师签了机构合同不干了怎么办? 成人高考学历在籍能签劳动合同吗? 报成人高考,在函授站报名的,会签合同或是协议什么的吗 报成人高考,在函授站报名的,会签合同或是协议什么的吗? 我就想知道参加这个成人高考和对方签的合同有没有什么问题? 成人高考不报了合同丢失补偿赔偿多少? 成人高考有协议吗,关于成人高考协议需要了解哪些信息 在机构办理成人高考今年考不了了转明年需要发票合同吗 手机内部充电线路损坏 *高考进的大学,还没毕业,在找工作,可以按高中学历签订劳动合同吗? 请问*高考如果要与公司签合同,公司要从哪里查询学历?谢谢! 大中专毕业生就业协议书学历填成人高考? 关于成人高考学费问题 成人高考学费交了,确认了,等考试,有事因为考不了可以退款吗? 融资租赁车辆质量问题须鉴定要双方同意吗 参加*高考为什么向教育机构交学钱而不是要向学校直接交学钱呢?为什么呢? 春节民俗民风调查随笔 不少于1000字 寒假随笔或春节随笔