62,046
社区成员
发帖
与我相关
我的任务
分享
//这里是JQuery的语法,给TreeView控件的CheckBox加载事件
//当选中父节点时,子节点全选中;当不选择父节点,但选择一个子节点时,父节点默认也选中
<script>
$(document).ready(function()
{
var funcStr="$(\":checkbox\").click(function(){CheckedChildNode(this);});";
eval(funcStr);
});
function valid()
{
var ids="";
for(var i=0;i<$("input:checked").size();i++)
{
ids+=$("input:checked").eq(i).val()+",";
}
if(ids=="")
{
return confirm("没选中任何信息,是否继续?");
}
return true;
}
function CheckedChildNode(obj)
{
var divs = obj.parentElement.parentElement.parentElement.parentElement.nextSibling;
if(divs!=null && divs.tagName=="DIV")
{
divs=divs.getElementsByTagName("input");
for(var i=0;i<divs.length;i++)
{
if(divs[i].type=="checkbox")
{
divs[i].checked=obj.checked;
}
}
}
if(obj.checked)
{
divs = obj.parentElement.parentElement.parentElement.parentElement.parentElement.previousSibling;
var ips=divs.getElementsByTagName("input");
for(var i=0;i<ips.length;i++)
{
if(ips[i].type=="checkbox")
{
ips[i].checked=obj.checked;
}
}
while(divs.parentElement!=null)
{
divs=divs.parentElement;
if(divs!=null && divs.tagName=="DIV")
{
divs=divs.previousSibling;
var ips=divs.getElementsByTagName("input");
for(var i=0;i<ips.length;i++)
{
if(ips[i].type=="checkbox")
{
ips[i].checked=obj.checked;
}
}
}
}
}
}
</script>
<asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All">
<Nodes>
<asp:TreeNode Text="新建节点" Value="1">
<asp:TreeNode Text="新建节点" Value="11">
<asp:TreeNode Text="新建节点" Value="111"></asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="112"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="12">
<asp:TreeNode Text="新建节点" Value="121"></asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="122"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="13"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="2"></asp:TreeNode>
</Nodes>
</asp:TreeView>
function Davidovitz_HandleCheckbox() {
var element = event.srcElement;
if (element.tagName == "INPUT" && element.type == "checkbox") {
var checkedState = element.checked;
while (element.tagName != "TABLE")
{
element = element.parentElement;
}
Davidovitz_UnCheckParents(element);
element = element.nextSibling;
if (element == null)
return;
var childTables = element.getElementsByTagName("TABLE");
for (var tableIndex = 0; tableIndex < childTables.length; tableIndex++) {
Davidovitz_CheckTable(childTables[tableIndex], checkedState);
}
}
}
function Davidovitz_UnCheckParents(table) {
if (table == null || table.rows[0].cells.length == 2)
{
return;
}
var parentTable = table.parentElement.previousSibling;
Davidovitz_CheckTable(parentTable, false);
Davidovitz_UnCheckParents(parentTable);
}
function Davidovitz_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;
}
}