Asp.net 2.0 TreeView:客户端子、父节点的操作- Windows Live

Asp.net 2.0 TreeView:客户端子、父节点的操作

????? function OnTreeNodeChecked()
????? {
???????? //获取事件对象
???????? var obj = window.event.srcElement;
???????? //事件节点是否被找到
???????? var treeNodeFound = false;
???????? //check状态
???????? var checkedState;
?????????
???????? //如果当前事件对象是checkbox
???????? if (obj.tagName == "INPUT" && obj.type == "checkbox")
???????? {
??????????? var treeNode = obj;
??????????? //获取当前checkbox的check状态
??????????? checkedState = treeNode.checked;
????????????
??????????? //获取当前节点所在的table
??????????? do
??????????? {
?????????????? obj = obj.parentElement;
??????????? }
??????????? while (obj.tagName != "TABLE")
????????????
??????????? //获取事件节点的深度
??????????? var parentTreeLevel = obj.rows[0].cells.length;
??????????? //获取树中所有节点
??????????? var tables = obj.parentElement.getElementsByTagName("TABLE");
??????????? //所有节点数
??????????? var numTables = tables.length;
??????????? //如果这棵树含有多个节点
??????????? if (numTables >= 1)
??????????? {
?????????????? //遍历树中的所有节点
?????????????? for (i=0; i < numTables; i++)
?????????????? {
????????????????? //比较是否为事件节点
????????????????? if (tables[i] == obj)
????????????????? {
???????????????????? //如果是,则已经找到
???????????????????? treeNodeFound = true;
???????????????????? //跳过(不是跳出遍历,到下面***处其实已转到下一个节点)
???????????????????? i++;??????? //这个地方可以换成continue;下面的判断可以去掉
???????????????????? //判断是否超过{zh1}一个节点
???????????????????? if (i == numTables)
???????????????????? {
??????????????????????? return;
???????????????????? }
????????????????? }
????????????????? if (treeNodeFound == true)
????????????????? {
???????????????????? //获取当前节点的深度
???????????????????? var childTreeLevel = tables[i].rows[0].cells.length;
?????????????????????
???????????????????? //***
???????????????????? //和事件节点比较深度
???????????????????? if (childTreeLevel > parentTreeLevel)
???????????????????? {
??????????????????????? var cell = tables[i].rows[0].cells[childTreeLevel - 1];
??????????????????????? var inputs = cell.getElementsByTagName("INPUT");
??????????????????????? inputs[0].checked = checkedState;
???????????????????? }
???????????????????? else
???????????????????? {
??????????????????????? //如果当前节点深度<=事件节点深度, 也就是遍历到了事件节点的兄弟或父节点,则跳出
??????????????????????? return;
???????????????????? }
????????????????? }
?????????????? }
??????????? }
???????? }
????? }
?
郑重声明:资讯 【Asp.net 2.0 TreeView:客户端子、父节点的操作- Windows Live】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——