一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

用js腳本控制asp.net下treeview的NodeCheck的實(shí)現(xiàn)代碼

增加CheckBox聯(lián)動(dòng)的情況選擇:
1.單選TreeView中的任一節(jié)點(diǎn)
2.當(dāng)一節(jié)點(diǎn)CheckBox屬性值改變時(shí):子節(jié)點(diǎn)的CheckBox屬性值跟隨其改動(dòng),父節(jié)點(diǎn)不變;
父節(jié)點(diǎn)的所有子節(jié)點(diǎn)的CheckBox屬性值都為false時(shí)才為false;有一個(gè)子節(jié)點(diǎn)的CheckBox屬性值true時(shí)則為true.
3.當(dāng)一節(jié)點(diǎn)CheckBox屬性值改變時(shí):子節(jié)點(diǎn)、父節(jié)點(diǎn)的CheckBox屬性值跟隨其改動(dòng);
父節(jié)點(diǎn)的所有子節(jié)點(diǎn)的CheckBox屬性值都為false時(shí)才為false;有一個(gè)子節(jié)點(diǎn)的CheckBox屬性值true時(shí)則為true.
Javascript代碼
復(fù)制代碼 代碼如下:
function OnTreeNodeChecked(id, type) {
//獲取觸發(fā)事件的對(duì)象
var element = window.event.srcElement;
//如果對(duì)象不是checkbox則不處理
if (!IsCheckBox(element))
return;
//獲取checked狀態(tài)
var isChecked = element.checked;
//獲取tree對(duì)象
var tree = TV2_GetTreeById(id);
//獲取element的相對(duì)結(jié)點(diǎn)(如果是葉結(jié)點(diǎn),則就為element,否則為其<A>結(jié)點(diǎn))
var node = TV2_GetNode(tree, element);
switch (type) {
case "1":
SetNodesUnChecked(tree);
element.checked = true;
break;
case "2":
TV2_SetChildNodesCheckStatus(node, isChecked);
break;
case "3":
TV2_SetChildNodesCheckStatus(node, isChecked);
var parent = TV2_GetParentNode(tree, node);
TV2_NodeOnChildNodeCheckedChanged(tree, parent, isChecked);
}
}
//set all nodes checkbox nochecked
function SetNodesUnChecked(TreeNode) {
var inputs = WebForm_GetElementsByTagName(TreeNode, "INPUT");
if (inputs == null || inputs.length == 0)
return;
for (var i = 0; i < inputs.length; i++) {
if (IsCheckBox(inputs[i]))
inputs[i].checked = false;
}
}
//set child nodes checkbox status
function TV2_SetChildNodesCheckStatus(node, isChecked) {
//返回當(dāng)前node所在的div層
var childNodes = TV2i_GetChildNodesDiv(node);
if (childNodes == null)
return;
var inputs = WebForm_GetElementsByTagName(childNodes, "INPUT");
if (inputs == null || inputs.length == 0)
return;
for (var i = 0; i < inputs.length; i++) {
if (IsCheckBox(inputs[i]))
inputs[i].checked = isChecked;
}
}
//change parent node checkbox status after child node changed
function TV2_NodeOnChildNodeCheckedChanged(tree, node, isChecked) {
if (node == null)
return;
var childNodes = TV2_GetChildNodes(tree, node);
if (childNodes == null || childNodes.length == 0)
return;
var isAllSame = true;
for (var i = 0; i < childNodes.length; i++) {
var item = childNodes[i];
var value = TV2_NodeGetChecked(item);
if (isChecked != value) {
isAllSame = false;
break;
}
}
var parent = TV2_GetParentNode(tree, node);
if (isAllSame) {
TV2_NodeSetChecked(node, isChecked);
TV2_NodeOnChildNodeCheckedChanged(tree, parent, isChecked);
}
else {
TV2_NodeSetChecked(node, true);
TV2_NodeOnChildNodeCheckedChanged(tree, parent, true);
}
}
//get node relative element(etc. checkbox)
function TV2_GetNode(tree, element) {
var id = element.id.replace(tree.id, "");
id = id.toLowerCase().replace(element.type, "");
id = tree.id + id;
var node = document.getElementById(id);
if (node == null) //leaf node, no "A" node
return element;
return node;
}
//get parent node
function TV2_GetParentNode(tree, node) {
var div = WebForm_GetParentByTagName(node, "DIV");
//The structure of node: <table>information of node</table><div>child nodes</div>
var table = div.previousSibling;
if (table == null)
return null;
return TV2i_GetNodeInElement(tree, table);
}
//get child nodes array
function TV2_GetChildNodes(tree, node) {
if (TV2_NodeIsLeaf(node))
return null;
var children = new Array();
var div = TV2i_GetChildNodesDiv(node);
var index = 0;
for (var i = 0; i < div.childNodes.length; i++) {
var element = div.childNodes[i];
if (element.tagName != "TABLE")
continue;
var child = TV2i_GetNodeInElement(tree, element);
if (child != null)
children[index++] = child;
}
return children;
}
function TV2_NodeIsLeaf(node) {
return !(node.tagName == "A"); //Todo
}
function TV2_NodeGetChecked(node) {
var checkbox = TV2i_NodeGetCheckBox(node);
return checkbox.checked;
}
function TV2_NodeSetChecked(node, isChecked) {
var checkbox = TV2i_NodeGetCheckBox(node);
if (checkbox != null)
checkbox.checked = isChecked;
}
function IsCheckBox(element) {
if (element == null)
return false;
return (element.tagName == "INPUT" && element.type.toLowerCase() == "checkbox");
}
//get tree
function TV2_GetTreeById(id) {
return document.getElementById(id);
}
//////////////////////////////////////////////////////////////////////////////////////////////
//private mothods, with TV2i_ prefix
//////////////////////////////////////////////////////////////////////////////////////////////
//get div contains child nodes
function TV2i_GetChildNodesDiv(node) {
//如果node.tagName == "A"則不處理
if (TV2_NodeIsLeaf(node))
return null;
var childNodsDivId = node.id + "Nodes";
return document.getElementById(childNodsDivId);
}
//find node in element
function TV2i_GetNodeInElement(tree, element) {
var node = TV2i_GetNodeInElementA(tree, element);
if (node == null) {
node = TV2i_GetNodeInElementInput(tree, element);
}
return node;
}
//find "A" node
function TV2i_GetNodeInElementA(tree, element) {
var as = WebForm_GetElementsByTagName(element, "A");
if (as == null || as.length == 0)
return null;
var regexp = new RegExp("^" + tree.id + "n//d+$");
for (var i = 0; i < as.length; i++) {
if (as[i].id.match(regexp)) {
return as[i];
}
}
return null;
}
//find "INPUT" node
function TV2i_GetNodeInElementInput(tree, element) {
var as = WebForm_GetElementsByTagName(element, "INPUT");
if (as == null || as.length == 0)
return null;
var regexp = new RegExp("^" + tree.id + "n//d+");
for (var i = 0; i < as.length; i++) {
if (as[i].id.match(regexp)) {
return as[i];
}
}
return null;
}
//get checkbox of node
function TV2i_NodeGetCheckBox(node) {
if (IsCheckBox(node))
return node;
var id = node.id + "CheckBox";
return document.getElementById(id);
}

html代碼
復(fù)制代碼 代碼如下:
<ASP:TreeView ID="TreeView1" runat="server" ImageSet="Msdn" ShowCheckBoxes="All"
ShowLines="True" BorderWidth="0px" Height="430px" Width="250px" Font-Size="Small"
OnClick="OnTreeNodeChecked()">
</ASP:TreeView>

JavaScript技術(shù)用js腳本控制asp.net下treeview的NodeCheck的實(shí)現(xiàn)代碼,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久综合精品国产一区二区三区 | 国产美女又黄又爽又色视频网站 | 一二三四视频社区在线中文1 | 伊人网站 | 久久国产精品ww | 色女人天堂| 精品免费国产一区二区三区 | 国产在线观看一区二区三区四区 | 婷婷综合 在线 | 国产精品久久久久久久牛牛 | 五月婷婷激情五月 | 六月丁香婷婷网 | 激情六月天婷婷 | 国产人成精品综合欧美成人 | 黄色片视频在线播放 | 国产美女精品 | 伊香蕉 | 久久国产乱子伦精品免 | 精品午夜久久福利大片免费 | 好吊妞在线播放 | 露脸真实国产精品自在 | 国产一级做a爰片久久毛片男 | 99在线在线视频免费视频观看 | 2021久久精品99精品久久 | 亚洲第一网站 | 99在线精品免费视频九九视 | 国产精品美女一级在线观看 | 久久韩国精品韩国专区 | 韩国免费一级片 | 亚洲乱码一二三四区乱码 | 亚洲一区国产 | 亚洲一区二区三区在线播放 | 中文成人在线视频 | 亚洲性久久 | 正在播放91 | 国产专区视频 | 久久九九色 | 看免费5xxaaa毛片30厘米 | 伊人天天干 | 午夜在线观看视频 | 四虎影视永久在线观看 |