权限树中Checkbox的操作[Asp.Net2.0]

yhhhzyj

yhhhzyj

2016-02-19 15:29

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享权限树中Checkbox的操作[Asp.Net2.0],希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

  这里使用asp.net2.0的TreeView控件结合JavaScript实现权限树的部分功能。
  假设权限树中有如下三条规则:
  1、该节点可以访问,则他的父节点也必能访问;
  2、该节点可以访问,则他的子节点也都能访问;
  3、该节点不可访问,则他的子节点也不能访问。

  代码如下:
  //获取元素指定tagName的父元素
  function public_GetParentByTagName(element, tagName)
  {
      var parent = element.parentNode;
      var upperTagName = tagName.toUpperCase();
      //如果这个元素还不是想要的tag就继续上溯
      while (parent && (parent.tagName.toUpperCase() != upperTagName))
      {
          parent = parent.parentNode ? parent.parentNode : parent.parentElement;
      }
      return parent;
  }

  //设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问
  function setParentChecked(objNode)
  {
      var objParentDiv = public_GetParentByTagName(objNode,"div");
      if(objParentDiv==null || objParentDiv == "undefined")
      {
          return;
      }
      var objID = objParentDiv.getAttribute("ID");
      objID = objID.substring(0,objID.indexOf("Nodes"));
      objID = objID+"CheckBox";
      var objParentCheckBox = document.getElementById(objID);
      if(objParentCheckBox==null || objParentCheckBox == "undefined")
      {
          return;
      }
      if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
      return;
      objParentCheckBox.checked = true;
      setParentChecked(objParentCheckBox);
  }

  //设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
  function setChildUnChecked(divID)
  {
      var objchild = divID.children;
      var count = objchild.length;
      for(var i=0;iobjchild.length;i++)
      {
          var tempObj = objchild[i];
          if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
          {
              tempObj.checked = false;
          }
          setChildUnChecked(tempObj);
      }
  }

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  //设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
  function setChildChecked(divID)
  {
      var objchild = divID.children;
      var count = objchild.length;
      for(var i=0;iobjchild.length;i++)
      {
          var tempObj = objchild[i];
          if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
          {
              tempObj.checked = true;
          }
          setChildChecked(tempObj);
      }
  }

  //触发事件
  function CheckEvent()
  {

      var objNode = event.srcElement;

      if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
      return;

      if(objNode.checked==true)
      {
          setParentChecked(objNode);
          var objID = objNode.getAttribute("ID");
          var objID = objID.substring(0,objID.indexOf("CheckBox"));
          var objParentDiv = document.getElementById(objID+"Nodes");
          if(objParentDiv==null || objParentDiv == "undefined")
          {
              return;
          }
          setChildChecked(objParentDiv);
      }
      else
      {
          var objID = objNode.getAttribute("ID");
          var objID = objID.substring(0,objID.indexOf("CheckBox"));
          var objParentDiv = document.getElementById(objID+"Nodes");
          if(objParentDiv==null || objParentDiv == "undefined")
          {
              return;
          }
          setChildUnChecked(objParentDiv);
      }
  }

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  然后在page_load事件中将TreeView与js事件绑定上:
  this.TreeView1.Attributes.Add("onclick", "CheckEvent()");

  http://jeffamy.cnblogs.com/archive/2006/06/17/428387.html

展开更多 50%)
分享

猜你喜欢

Asp.Net2.0权限树中Checkbox的操作

Web开发
Asp.Net2.0权限树中Checkbox的操作

权限树中Checkbox的操作[Asp.Net2.0]

Web开发
权限树中Checkbox的操作[Asp.Net2.0]

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ASP.Net2.0中自定义控件在page中的注册

Web开发
ASP.Net2.0中自定义控件在page中的注册

Asp.Net2.0中实现多任务异步页的一点提示

Web开发
Asp.Net2.0中实现多任务异步页的一点提示

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ASP.Net2.0 GridView 多列排序显示排序图标分页

Web开发
ASP.Net2.0 GridView 多列排序显示排序图标分页

在Asp.Net2.0中可以方便的访问配置文件web.config,如判断debug设

Web开发
在Asp.Net2.0中可以方便的访问配置文件web.config,如判断debug设

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

ASPX接收WINDOWS应用程序以POST方式发来的信息并存成文件

ASPX接收WINDOWS应用程序以POST方式发来的信息并存成文件

位图文件内部初探

位图文件内部初探
下拉加载更多内容 ↓