由于vs 自带的treeview控件,显示出checkbox以后,点checkbox的时候不能触发任何事件,所以在后台也不能控制
只有给checkbox添加一个回发事件:

function postBackObject()
{   
    var o = window.event.srcElement;
    if (o.tagName == "INPUT" && o.type == "checkbox") //点击treeview的checkbox是触发
    {
              __doPostBack("","");
     }
}

//TreeView 添加一个点击事件
  <asp:TreeView ID="tvGrant" runat="server" Height="322px" ImageSet="Arrows" ShowCheckBoxes="All"
                    Width="194px" οnclick="postBackObject()">

添加完以后,当选择checkbox的时候将回发一次,接着就只要在后台的TreeNodeCheckChanged()里面判断一下
就可以达到全选的目的了.但是这个每次选择的时候,都要刷新页面.
为了不刷新 ,就在前台写代码控制:

function postBackByObject()
{   
    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;
        }

      }    

    } 

}

添加上面的代码后,后台不要写代码控制了,页面也不刷了,同样达到多选的目的.希望对大家有点帮助!!!!

转载于:https://www.cnblogs.com/ltenai/archive/2007/06/28/798822.html

关于treeview中的checkbox的全选问题相关推荐

  1. GridView中实现CheckBox的全选

    用服务器端的方法: 在页面上放一个gridview控件,配置好数据源,编辑列,添加一个模版列,再编辑模版,放入一个checkbox控件.代码如下: <asp:GridView ID=" ...

  2. 在项目中学习.NET的JQuery CheckBox方法(全选、取消全选、其他)

    一.在项目中遇到的CheckBox的全选和取消全选以及其他等解决方案如下: // 对全选和取消全选的事件 $("#CheckAll").click(function () {    ...

  3. JQuery实现复选框CheckBox的全选、反选、提交操作

    对复选框最基本的应用,就是对复选框进行全选.反选和提交等操作.复杂的操作需要与选项挂钩,来达到各种级联反应效果. [示例]使用Jquery实现复选框CheckBox的全选.反选.提交操作. (1)创建 ...

  4. Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能

    Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...

  5. 实现checkbox的全选和取消

    如果点击全选就把所有选项全选上,这个我们常用... View Code 1 <script type="text/javascript"> 2 /*实现checkbox ...

  6. JS如何控制checkbox的全选反选

    JS代码: 1 <script language="javascript" type="text/javascript"> 2 3 //转载请保留出 ...

  7. jQuery实现checkbox的全选反选方法

    checkbox的全选.取消全选.选中所有奇数.选中所有偶数等方法的实现代码如下: 注意jQuery的版本:jQuery1.6增加了prop,1.6之前的还是使用attr()和removeAttr() ...

  8. 微信小程序checkbox的全选以及所有checkbox选中之后的全选

    微信小程序checkbox的全选以及所有checkbox选中之后的全选 微信小程序checkbox的全选以及所有checkbox选中之后的全选 第一次写,软件都不懂,直接把代码拷过来了 模板 WXML ...

  9. ListView中嵌套checkbox实现多选

    我现在要实现一个多选的ListView,当选择ListView中的checkbox的时候,可以将选中的多个checkbox所代表的值保存到数据库中!哪位高手做过类似的东西,给小弟指教指教,十分感谢! ...

  10. 实现gridview中checkbox的全选和反选,以及固定gridview列字符串的长度,多余的以...表示...

    下面是源码: 先添加js和CSS <script type="text/javascript" language="javascript">     ...

最新文章

  1. uploadhandler.php,WordPress Kernel Theme ‘upload-handler.php’任意文件上传漏洞
  2. [2018-08-03] python开发个人资源共享网--第一天
  3. 第二章 数据结构 【完结】
  4. vue 页面闪烁的问题_vue页面加载闪烁问题的解决方法
  5. BZOJ4562: [Haoi2016]食物链
  6. webpack钩子调用shell笔记
  7. [POJ1733]Parity game(并查集 + 离散化)
  8. $_SERVER['REQUEST_URI']和$_SERVER[HTTP_X_REWRITE_URL]的区别
  9. 计算机应用基础操作演示,计算机应用基础上机操作题
  10. 面试题之数据库事务隔离级别
  11. 室内设计优美语句_关于室内设计的名言
  12. Android动画插入器
  13. GDT、LDT和IDT
  14. Pandas中常见的20多种数据筛选方法,116张图详解 | 图解Pandas-图文第8篇
  15. 消费者满意度调查方案
  16. 【歪门邪道】Android中如何快速回到主页
  17. 计算机常用快捷键(世上最全)
  18. [EULAR文摘] 超声滑膜炎和腱鞘炎对已获临床缓解患者病情复发的预测
  19. 2013各大公司的待遇如下
  20. W ndoWs7重启按F11没用,windows7系统开不开机,按F11以后怎么em一键还原/em-win7 一键还原,w...

热门文章

  1. 【linux就该这么学】-09
  2. [试题]Python大赛部分答案
  3. vuex模块相互调用
  4. 光在参与介质中的传播及辐射传递方程
  5. JavaScript闭包 懂不懂由你反正我是懂了
  6. 两段检验系统生成的identityHashCode是否重复的代码
  7. 【Python之路Day12】网络篇之Paramiko
  8. OJ-1:时钟问题【九度1553】
  9. flash无法注册控件
  10. CodeForces 297C Splitting the Uniqueness (脑补构造题)