日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

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

發布時間:2023/12/10 asp.net 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]权限树中Checkbox的操作[Asp.Net2.0] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉自:http://jeffamy.cnblogs.com/archive/2006/06/17/428387.html

原文如下:

這里使用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;i<objchild.length;i++)
????
{
????????
var?tempObj?=?objchild[i];
????????
if(tempObj.tagName=="INPUT"?&&?tempObj.type?==?"checkbox")
????????
{
????????????tempObj.checked?
=?false;
????????}

????????setChildUnChecked(tempObj);?
????}

}


//設置節點的子節點cheched——該節點可以訪問,則他的子節點也都能訪問
function?setChildChecked(divID)
{?
????
var?objchild?=?divID.children;
????
var?count?=?objchild.length;?
????
for(var?i=0;i<objchild.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);
????}

}


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

總結

以上是生活随笔為你收集整理的[转]权限树中Checkbox的操作[Asp.Net2.0]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。