需要实现的功能:选中父节点对应子节点全选;不选中父节点,对应子节点也不选中
如下图所示,选中车队,对应车队中车辆也全部选中,以实现车队中所有车辆在地图上的显示。

选中cqupt1,则对应所有成员car1,car2自动选中,地图上显示车队中的所有车辆位置信息

解决办法:

车队对应的id为team_id,车辆对应的id为veh_id,在每个车队中,所有车辆对应同一个team_id

1、首先在TeamTree.aspx.cs文件中
把team_id从父节点函数中传递到子节点函数中,
再给该车队每个成员定义一个共同的标签名称team_id,这样car1/car2/car3三个车有个共同的标签team_id :
sb_TreeNode.Append("<div class='" + strclass + "'><input id='" + entity.team_id + "' type='checkbox' /><span>" + entity.team_name + "</span></div>");
选中team_id,对应的member_id都选中,并传递member_id,而不传递team_id。而上面的程序直接把id传出
对应代码如下:
 /// <summary>
/// 创建子节点
/// </summary>
/// <param name="list">list</param>
/// <returns></returns>
public string GetTreeNode(IList list)
{
Info_Veh_Team info_veh_team = new Info_Veh_Team();
StringBuilder sb_TreeNode = new StringBuilder();
List<Info_Veh_Team> itemNode = IListHelper.IListToList<Info_Veh_Team>(list); int index1 = ;
string strclass = "";
if (itemNode.Count > )
{
sb_TreeNode.Append("<ul>");
foreach (Info_Veh_Team entity in itemNode)
{
if (index1 == )
strclass = "collapsableselected";
else
strclass = "";
sb_TreeNode.Append("<li>");
sb_TreeNode.Append("<div class='" + strclass + "'><input id='" + entity.team_id + "' type='checkbox' id1='" + index1 + "' /><span>" + entity.team_name + "</span></div>"); info_veh_team = info_veh_teamibll.GetEntity(entity.team_id);
StringBuilder where = new StringBuilder();
where.Append("and team_id='" + info_veh_team.team_id + "'");
IList nextlist = info_team_memberibll.GetListWhere(where, null);
sb_TreeNode.Append(GetTreeNodeNext(nextlist, index1));
sb_TreeNode.Append("</li>");
index1++;
}
sb_TreeNode.Append("</ul>");
}
return sb_TreeNode.ToString();
}
/// <summary>
/// 创建子节点
/// </summary>
/// <param name="list">list</param>
/// <returns></returns>
public string GetTreeNodeNext(IList list, int index1)
{
StringBuilder sb_TreeNode = new StringBuilder();
List<Info_Team_Member> itemNode = IListHelper.IListToList<Info_Team_Member>(list);
int index = ;
string strclass = "";
if (itemNode.Count > )
{
sb_TreeNode.Append("<ul>");
foreach (Info_Team_Member entity in itemNode)
{
if (index == )
strclass = "collapsableselected";
else
strclass = "";
sb_TreeNode.Append("<li>");
sb_TreeNode.Append("<div class='" + strclass + "'><input id='" + entity.member_id + "' type='checkbox' name='" + index1 + "' id2='" + index1 + "' id3='" + entity.veh_lpn + "'/><span>" + entity.veh_lpn + "</span></div>");
sb_TreeNode.Append("</li>");
index++;
}
sb_TreeNode.Append("</ul>");
}
return sb_TreeNode.ToString();
}
2、具体的复选框选中在js里面去实现,也就是TeamTree.aspx中去实现(选中父则子全选中)
在TeamTree.aspx中,先是把复选框选中的所有元素保存到数组中,界面点击传出的选中的结果,对应实现应该勾选的各结果
$('.strTree li div input:checkbox').click(function () {//问题:如何实现选中车队,对应成员全部选中,并传对应所有成员的member_id,而不是传team_id

                team_id = document.getElementsByName($(this).attr('id1'));    //通过name   获取name='team_id'的子元素        ($(this).attr('id'))为被选中的车队名
team = document.getElementById($(this).attr('id')); //通过id获取 获取的是被勾选的车队或者车辆的id
if (team.checked) {
for (i = ; i < team_id.length; i++) {
team_id[i].checked = true;
}
} else {
for (i = ; i < team_id.length; i++) {
team_id[i].checked = false;
}
} //alert(team_id.length);
var indexs = [];
var vehIds = [];
$(".strTree li div input:checkbox:checked").each(function (i) { //由于复选框选中多个,所以循环输出
v = document.getElementsByName($(this).attr('id1'));
//alert("v的值" + v.length);
if (v.length == ) {
//vehIds[i] = $(this).attr('id2') + "|" + $(this).attr('id3');
indexs[i] = $(this).attr('id2');
vehIds[i] = $(this).attr('id3');
}
//vehIds[i] = $(this).attr('id'); //attr() 方法设置或返回被选元素的属性值 });
for (var i = ; i < indexs.length; i++) { //清除vehIds[]中的所有空字符串
if (indexs[i] == '' || indexs[i] == null || typeof (indexs[i]) == undefined) {
indexs.splice(i, );
i = i - ;
}
}
for (var i = ; i < vehIds.length; i++) { //清除vehIds[]中的所有空字符串
if (vehIds[i] == '' || vehIds[i] == null || typeof (vehIds[i]) == undefined) {
vehIds.splice(i, );
i = i - ;
}
}
self.vehIds = vehIds;
self.indexs = indexs; var path = 'TeamMap.aspx';
window.parent.frames['target_right'].location = path;
Loading(true);
});

调试结果:

参考实例:
参考网址:
 
 

Web网页树形列表中实现选中父节点则子节点全选和不选中父则子全不选的更多相关文章

  1. 20150812 Asp.net 父窗体获取子窗体的返回值,更新父窗体文本控件(应用)

    1. 父窗体 **************************************** using System;using System.Collections;using System.C ...

  2. C#中treeview的问题,如何区分根节点和子节点以及根节点和根节点的兄弟节点?

    根节点的Level属性为0,一级子节点Level属性为1,二级子节点Level属性为2,以此类推:同级节点可以用索引.名称.文本来区分.用索引区分根节点时,TreeView.Nodes[0]就是第一个 ...

  3. 总结获取原生JS(javascript)的父节点、子节点、兄弟节点

    关于原生JS获取节点,一直是个头疼的问题,而且调用方法的名字又贼长了,所以我选择用JQ,好像跑题了-- 话不多说看代码 获取父节点 及 父节点下所有子节点(兄弟节点) <ul> <l ...

  4. zTree实现清空选中的第一个节点的子节点

    zTree实现清空选中的第一个节点的子节点 1.实现源代码 <!DOCTYPE html> <html> <head> <title>zTree实现基本 ...

  5. SqlServer父节点与子节点查询及递归

    在最近老是用到这个SQL,所以记下来了: 1:创建表 CREATE TABLE [dbo].[BD_Booklet]( [ObjID] [int] IDENTITY(1,1) NOT NULL, [P ...

  6. 包含mysql 递归查询父节点 和子节点

    包含mysql 递归查询父节点 和子节点 mysql递归查询,查父集合,查子集合 查子集合 --drop FUNCTION `getChildList` CREATE FUNCTION `getChi ...

  7. Jquery选择器之父节点的子节点

    今天review代码,发现有哥们这么写 var span = $($("span"),$("#main")); 我百思不得其解,$(a,b)又好像在哪里见过,后 ...

  8. cocos2d-x 父节点和子节点执行不同动作

    Test6::Test6() { CCSprite* sp1 = CCSprite::create(s_pPathSister1); CCSprite* sp11 = CCSprite::create ...

  9. ztree 获取当前选中节点的子节点集合

    功能:获取当前选中节点的子节点id集合. 步骤:1.获取当前节点 2.用ztree的方法transformToArray()获取当前选中节点(含选中节点)的子节点对象集合. 3.遍历集合,取出需要的值 ...

随机推荐

  1. 新概念英语(1-51)A pleasant climate

    新概念英语(1-51)A pleasant climate Does it ever snow in Greece? A:Where do you come from? B:I come from G ...

  2. 深入理解.net - 1.继承的本质

    最近偶然看到这个博客你必须知道的.net,作者6的飞起啊,干货十足,还是07年写的...写的也很赞,评论更精彩,在此强烈推荐一波,看的感觉就像沙漠里发现了绿洲一样,很兴奋,意犹未尽,迫不及待的看完一篇 ...

  3. 音频压缩编码 opus 附完整C++代码示例

    绝大数人都知道mp3格式编码,以及aac,amr等压缩格式编码. 而在语音通信界有一个强悍的音频格式编码opus. 经过实测,压缩比最高可以达到1:10. 100KB 压缩后 10KB 虽然是有损压缩 ...

  4. MQTT客户端库-Paho GO

    为了加深理解,本文是翻译文章.原文地址 Paho GO Client   语言 GO 协议 EPL AND EDL 官网地址 http://www.eclipse.org/paho/ API类型 As ...

  5. [SCOI 2016]美味

    Description 题库链接 给你一个长度为 \(n\) 的序列 \(A\) . \(m\) 组询问 \((b,x,l,r)\) 询问 \[\max_{i=l}^r b\oplus (A_i+x) ...

  6. [TJOI 2016&HEOI 2016]排序

    Description 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题 ,需要你来帮助他.这个难题是这样子的:给出一个1到n的全排列,现在对这 ...

  7. [HNOI2002]跳蚤

    题目描述 Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有N+1个自然数.其中最 ...

  8. bzoj 4567: [Scoi2016]背单词

    Description Lweb 面对如山的英语单词,陷入了深深的沉思,"我怎么样才能快点学完,然后去玩三国杀呢?".这时候睿智 的凤老师从远处飘来,他送给了 Lweb 一本计划册 ...

  9. ●BZOJ 4710 [Jsoi2011]分特产

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4710 题解: 容斥,组合先看看这个方案数的计算:把 M 个相同的东西分给 N 个人,每个人可 ...

  10. LCD接口和RGB介绍

    1. 介绍 Video的显示离不开LCD, 所以这里简单介绍一下LCD的接口和RGB LCD的全称是Liquid Crystal Display 的简称, 即液晶显示器LCD目前已经取代CRT, 成为 ...