asp.net 树形视图复选框选择

2023-12-06

我有几个父节点。每个父节点都包含一个子节点列表。我的显示复选框设置为全部。

我的问题 :

在客户端,当我检查父节点时 - 如何在不进行回发或使用 ajax 的情况下检查所有子节点。

Regards


tv.Attributes.Add("onclick", "OnTreeClick(event)");

添加此 JavaScript 代码

<script language="javascript" type="text/javascript">
    function OnTreeClick(evt) {
        var src = window.event != window.undefined ? window.event.srcElement : evt.target;
        var isChkBoxClick = (src.tagName.toLowerCase() == "input" && src.type == "checkbox");
        if (isChkBoxClick) {
            var parentTable = GetParentByTagName("table", src);
            var nxtSibling = parentTable.nextSibling;
            if (nxtSibling && nxtSibling.nodeType == 1)//check if nxt sibling is not null & is an element node
            {
                if (nxtSibling.tagName.toLowerCase() == "div") //if node has children
                {
                    //check or uncheck children at all levels
                    CheckUncheckChildren(parentTable.nextSibling, src.checked);
                }
            }
            //check or uncheck parents at all levels
            CheckUncheckParents(src, src.checked);
        }
    }

    function CheckUncheckChildren(childContainer, check) {
        var childChkBoxes = childContainer.getElementsByTagName("input");
        var childChkBoxCount = childChkBoxes.length;
        for (var i = 0; i < childChkBoxCount; i++) {
            childChkBoxes[i].checked = check;
        }
    }

    function CheckUncheckParents(srcChild, check) {
        var parentDiv = GetParentByTagName("div", srcChild);
        var parentNodeTable = parentDiv.previousSibling;

        if (parentNodeTable) {
            var checkUncheckSwitch;

            if (check) //checkbox checked
            {
                var isAllSiblingsChecked = AreAllSiblingsChecked(srcChild);
                if (isAllSiblingsChecked)
                    checkUncheckSwitch = true;
                else
                    return; //do not need to check parent if any(one or more) child not checked
            }
            else //checkbox unchecked
            {
                checkUncheckSwitch = false;
            }

            var inpElemsInParentTable = parentNodeTable.getElementsByTagName("input");
            if (inpElemsInParentTable.length > 0) {
                var parentNodeChkBox = inpElemsInParentTable[0];
                parentNodeChkBox.checked = checkUncheckSwitch;
                //do the same recursively
                CheckUncheckParents(parentNodeChkBox, checkUncheckSwitch);
            }
        }
    }

    function AreAllSiblingsChecked(chkBox) {
        var parentDiv = GetParentByTagName("div", chkBox);
        var childCount = parentDiv.childNodes.length;
        for (var i = 0; i < childCount; i++) {
            if (parentDiv.childNodes[i].nodeType == 1) //check if the child node is an element node
            {
                if (parentDiv.childNodes[i].tagName.toLowerCase() == "table") {
                    var prevChkBox = parentDiv.childNodes[i].getElementsByTagName("input")[0];
                    //if any of sibling nodes are not checked, return false
                    if (!prevChkBox.checked) {
                        return false;
                    }
                }
            }
        }
        return true;
    }

    //utility function to get the container of an element by tagname
    function GetParentByTagName(parentTagName, childElementObj) {
        var parent = childElementObj.parentNode;
        while (parent.tagName.toLowerCase() != parentTagName.toLowerCase()) {
            parent = parent.parentNode;
        }
        return parent;
    }

</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

asp.net 树形视图复选框选择 的相关文章

  • C# 编译器不会优化不必要的强制转换

    前几天 在写答案的时候这个问题 https stackoverflow com questions 2208315 why is any slower than contains在这里 关于溢出 我对 C 编译器感到有点惊讶 它没有按照我的
  • 如何在数据表角度中基于 JSON 动态填充表值?

    我在用着Angular 数据表 https l lin github io angular datatables 我需要能够根据返回的数据动态创建表 换句话说 我不想指定列标题 Example json数据 id 2 city Baltim
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • Project Euler #8,我不明白我哪里出了问题[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在做项目欧拉第八题 https projecteuler net problem 8 其中我得到了这个大得离谱的数字 7316
  • 当rest api应用程序服务器(express)和Angulars js应用程序在不同端口上运行时出现Cors问题

    我有用node js编写的rest api应用程序 express在端口3000上运行 而angularjs应用程序在同一服务器上的端口9001上运行 从 angularjs 应用程序调用 rst api 时 出现了 cors 问题 在re
  • 英文日期差异

    接近重复 如何计算相对时间 https stackoverflow com questions 11 how do i calculate relative time 如何在 C 中计算某人的年龄 https stackoverflow c
  • “$(document).ready”函数的替代方案

    我在 aspx 页面中使用 fancybox 对于灯箱 文档就绪功能在此页面中不起作用 有人告诉我编写一个新的 JavaScript 代码来加载该页面中的灯箱 包括 jQuery 检查网络选项卡 确保您没有收到 404 检查控制台是否没有收
  • chrome 选项卡/窗口中的 window.open 行为

    我有一小段 javascript 旨在打开两个或更多选项卡 这在 FF 和 IE 中工作正常 但 chrome 会在新窗口而不是选项卡中打开第二个窗口 它不依赖于 url 因为我已经尝试过使用两个相同的 url 第一个在选项卡中打开 第二个
  • 如何在 winforms 应用程序的主屏幕显示之前显示欢迎屏幕?

    我想在应用程序启动时加载欢迎屏幕 然后用户单击欢迎屏幕上的按钮 然后关闭欢迎屏幕 最后显示主屏幕 static void Main startup method being called Application EnableVisualSt
  • 如何计算一行中Flexbox项目的数量?

    网格是使用 CSS flexbox 实现的 Example http jsbin com jumosicasi edit html css js output 本示例中的行数为 4 因为我出于演示目的固定了容器宽度 但是 实际上 它可以根据
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • 来自 3rd 方库的链接器错误 LNK2019

    我正在将旧的 vc 6 0 应用程序移植到 vs2005 我收到以下链接器错误 我花了几天时间试图找到解决方案 错误LNK2019 无法解析的外部符号 imp 创建AwnService 52 在函数 public int thiscall
  • 有序 JSON 对象

    我有一个 servlet 它与数据库通信 然后返回有序 按时间排序 对象的列表 在servlet部分 我有 access DB returns a list of User objects ordered ArrayList users M
  • INotifyPropertyChanged 和 propertyName

    我一直不确定它的含义propertyName实施时INotifyPropertyChanged 所以一般来说你实现INotifyPropertyChanged as public class Data INotifyPropertyChan
  • 从json中获取所有子节点

    我有以下 json var source k 01 k 02 children k 05 k 06 children k ABC k PQR k 07 k 03 我希望能够指定 k 的值并取回所有孩子 以及孙
  • DataContractSerializer 事件/委托字段问题

    在我的 WPF 应用程序中 我正在使用DataContractSerializer序列化对象 我发现它无法序列化具有事件或委托声明的类型 考虑以下失败的代码 Serializable public abstract class BaseCl
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc

随机推荐

  • 如何从单一行为中提取价值

    是否有带签名的内置函数 Monad m gt m a gt a Hoogle 说没有这样的功能 你能解释一下为什么吗 一个 monad 只提供两个功能 return Monad m gt a gt m a gt gt Monad m gt
  • 异步ajax请求锁定浏览器

    这是启动一个简单的代码片段异步阿贾克斯请求 请求的处理时间为故意长 10 秒或更长时间 Why 浏览器阻止我的用户点击在异步请求过程中在 href 链接上 已尝试使用 Firefox 和 Chrome The 异步请求通常被调用并且 就绪
  • 如何将Python项目转换为可执行文件

    我有一个 Python 项目 我想将其转换为可执行文件 我已经安装了Pyinstaller 我只知道如何将一个脚本转换为 exe 但我有多个包含多个 python 脚本的包 我成功使用的命令行是 pyinstaller noupx onef
  • 是否可以将 Xamarin ios 应用程序连接到 swift watchOS 扩展

    我已经有一个在 swift 下开发的 WatchOSExtension 是否可以将其连接到新开发的 xamarin ios 项目 不 不可能将 Swift 扩展与 Xamarin 应用程序一起使用 这也适用于任何形式的 iOS 扩展 您将需
  • 按值返回的右值引用参数是 xvalue 吗?

    我的理解是 在下面的函数中 表达式foo在声明中return foo 是一个 xvalue 因为它表示的对象即将过期 即使foo是前面语句中的左值 Foo bar Foo foo change foo return foo 此类到期值不属于
  • 跟进术语,寻找行动项目

    我想编写一个快速脚本来提醒自己将后续操作项目放在各种谷歌文档上 从谷歌驱动器中受益 以便从 API list 中受益 然而 似乎followup actionitems搜索查询不适用于 API 因为搜索词未知 它返回 400 错误 例如 这
  • 尝试 listview.getChildAt() 时出现 java.lang.NullPointerException

    ListView 具有正确的值 public class FragmentTab1 extends SherlockFragment ListView list LazyAdapter adapter Override public voi
  • 获取父 ID 的子页面并显示自定义图像字段以及 WordPress 中页面的链接

    我需要获取子页面列表 但我需要排除第一个子页面 我还需要显示一个名为 page icon 的自定义图像字段 其中包含每个图像的 url 和页面标题 这将充当子菜单 将显示在每个子页面上 每个菜单项都需要将当前类附加到 a 标签 我尝试了多种
  • Accumulo 支持聚合吗?

    我是 Accumulo 的新手 我知道我可以编写 Java 代码来使用 Hadoop 和 MapReduce 扫描 插入 更新和删除数据 我想知道的是 Accumulo 中是否可以进行聚合 我知道在MySql中我们可以使用groupby o
  • Windows 中用于生物识别身份验证的凭据提供程序

    我有一个定制的基于 USB 的指纹识别设备 如何将设备上的指纹与 Windows 计算机的用户关联起来 使用 CredentialProvider 首先 我希望在指纹扫描时自动登录 而不提示输入用户名 密码 我意识到应该有一些注册过程来将指
  • Chome 扩展:将 chrome.storage 数据从后台脚本发送到 popup/contentscript

    如标题中所述 我正在尝试编写一个后台脚本 该脚本将侦听来自 popup js 或 contentscript js 的加载请求 当它接收到负载时 它会获取 chrome storage local 的内容 执行一些数据处理 for 循环 并
  • 如何使用 Pharo 每 60 秒刷新一次会话并将其显示在成绩单上?

    a b a ZnClient new a get http cloud storage com login a formAt username put jom formAt password put mypass post get http
  • 自定义或可重复使用的 HTML 组件

    我们可以在 HTML 中创建自定义或可重用的组件吗 我的页面具有帐户搜索功能 该功能是使用 HTML JS jQuery 代码实现的 我的页面由不同地方的帐户搜索组成 功能同样困难 每次使用时 只有 div 的 ID 会发生变化 那么我们能
  • 控制中心中的“播放/暂停下一个/上一个”按钮显示为灰色

    在我的应用程序中 播放是从控制中心控制的 当在 AVPlayer 中进行播放时 此时播放控件在控制中心工作正常 我正在加载带有其他流 URL 的 Web 视图 一旦流再次完成 我就开始从 AVPlayer 播放 此后 控制中心的播放控件将显
  • javascript Thrift 客户端挂起

    我在 javascript 中有以下 Thrift 客户端代码
  • JAXB 解组 XML 字符串 - 循环遍历所有标签

    我是 Java 编程新手 正在解组以下 XML 字符串 我的任务是获取客户的姓名 这个字符串 我已经为一位客户做过 我需要获取所有客户姓名 我需要有关循环部分的帮助 这适用于一位客户 我的Java代码 XMLInputFactory xif
  • Sprite Kit - iOS 7.1 更新后由于缩放而导致对象碰撞

    没有问题 但在 iOS 7 1 更新后 物体碰撞 2pipes 的间隙 之前有人说过 这可能是因为 yScale 但我找不到解决方案 一些代码 Pipe pipe Pipe alloc initWithImageNamed pipeImag
  • @onclick="(() => SomeMethod(参数))"

    我正在研究 Blazor 偶然发现了这个表达式 onclick gt SomeMethod parameter 我无法在任何地方找到 谷歌这个 我猜 lambda 表达式实际上在做什么 谁能帮我解释一下这部分 gt 以及为什么使用它以及在哪
  • 如何使用 Webpack 2 获取数据属性内的图像?

    我在用 pug我的 HTML 和标准模板src我的图像上的属性如下所示 img src images image 当我跑步时webpack p 任何定义在src我的图像被 Webpack 找到并放入我的dist目录 这正是我所期望发生的事情
  • asp.net 树形视图复选框选择

    我有几个父节点 每个父节点都包含一个子节点列表 我的显示复选框设置为全部 我的问题 在客户端 当我检查父节点时 如何在不进行回发或使用 ajax 的情况下检查所有子节点 Regards tv Attributes Add onclick O