惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
V
Visual Studio Blog
IT之家
IT之家
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Help Net Security
J
Java Code Geeks
aimingoo的专栏
aimingoo的专栏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - 老狐狸

关于Update语句在不同数据库中的差别 出错存储过程 F_GETTABLELID 正则表达式求值 - 老狐狸 - 博客园 创建层次查询 ultrawebgrid - 老狐狸 - 博客园 javascript - 老狐狸 - 博客园 case when用法和and 后加条件 exp/imp导出导入工具的使用 ASP.NET1.1中Grid自定义眉头 asp.net1.0 TreeView 创建记录、数组 关闭远程数据库连接 创建游标 创建新的序列 创建隐式游标 创建临时表 更新表(多表相关联)
asp.net2.0 TreeView
老狐狸 · 2006-06-27 · via 博客园 - 老狐狸

<script language="javascript" type="text/javascript">
var OnNodeChecked;
var OnInit;
function client_OnTreeNodeChecked()
{
    
var element = event.srcElement;
    
if (element.tagName == "INPUT" && element.type == "checkbox")
    
{
        
var checkedState = element.checked;
        
while (element.tagName != "TABLE"// Get wrapping table
        {
            element 
= element.parentElement;
        }

        
       setChildCheck(element,checkedState);
       setParentCheck(element,checkedState);
       
if (OnInit)
        
{
            OnInit();
        }

       
var tree = document.getElementById("TreeView1");
       FindCheckedFromNode(tree)
    }

}

function FindCheckedFromNode(node) 
{
    
var element = node;
    
if (element == null)
        
return;
    
var a;
    
var childTables = element.getElementsByTagName("TABLE");
    
for (var tableIndex = 0; tableIndex < childTables.length; tableIndex++)
    
{
         
var checkboxIndex = childTables[tableIndex].rows[0].cells.length - 1;
         
var cell = childTables[tableIndex].rows[0].cells[checkboxIndex];
         
var checkboxes = cell.getElementsByTagName("INPUT");
         
if (checkboxes.length == 1 && checkboxes[0].checked)
         
{
            a 
= a + childTables[tableIndex].rows[0].innerText;
            AddChecked(childTables[tableIndex]);
         }

    }

}

function AddChecked(table) 
{
    
if (OnNodeChecked)
        OnNodeChecked(table);
}

function setChildCheck(table,checkedState)
{
    
var element = table.nextSibling;
    
if (element == null// If no childrens than exit
        return;
    
    
var childTables = element.getElementsByTagName("TABLE");
    
for (var tableIndex = 0; tableIndex < childTables.length; tableIndex++)
    
{
        checkTable(childTables[tableIndex], checkedState);
    }

}

function setParentCheck(table,checkedState)
{
   
if (table == null || table.rows[0].cells.length == 2// This is the root
    {
        
return;
    }

    
var parentTable = table.parentElement.previousSibling;
    
if (checkedState)
    
{
         checkTable(parentTable, checkedState);
    }

    
else
    
{
        checkBrother(parentTable,checkedState)
    }

    setParentCheck(parentTable,checkedState);
    
}


function checkTable(table, checked)
{
    
var checkboxIndex = table.rows[0].cells.length - 1;
    
var cell = table.rows[0].cells[checkboxIndex];
    
var checkboxes = cell.getElementsByTagName("INPUT");
    
if (checkboxes.length == 1)
    
{
        checkboxes[
0].checked = checked;
    }

}

function checkBrother(parentTable,checkedState)
{
    
var bChecked = true;
    
var element = parentTable.nextSibling;
    
if (element == null// If no childrens than exit
        return;
    
    
var childTables = element.getElementsByTagName("TABLE");
    
for (var tableIndex = 0; tableIndex < childTables.length; tableIndex++)
    
{
        
var checkboxIndex = childTables[tableIndex].rows[0].cells.length - 1;
        
var cell = childTables[tableIndex].rows[0].cells[checkboxIndex];
        
var checkboxes = cell.getElementsByTagName("INPUT");
        
if (checkboxes.length == 1 && checkboxes[0].checked)
        
{
            bChecked 
= false;
            
break;
        }

    }

    
if(bChecked)
    
{
        checkTable(parentTable,checkedState);
    }

    
else
    
{
        setParentCheck(parentTable,
!checkedState);
    }

}
;

//前台调用
var value='';
OnNodeChecked 
= fnDoNodeChecked;
OnInit 
= fnDoInit;
function fnDoInit()
{
    value 
= "";
}
    

function fnDoNodeChecked(table)
{    
    value 
=  value + table.rows[0].innerText;
    alert(value);
}


    
</script>