62,025
社区成员
发帖
与我相关
我的任务
分享
//这里是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>
<script type="text/javascript">
// 点击复选框时触发事件
function postBackByObject() {
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox") {
__doPostBack("", "");
}
}
function getcheck(evt) {
//var o = window.event.srcElement;
var o = window.event ? window.event.srcElement : evt.target;
if (o.tagName == "INPUT" && o.type == "checkbox") //点击treeview的checkbox是触发
{
var d = o.id; //获得当前checkbox的id;
var e = d.replace("CheckBox", "Nodes"); //通过查看脚本信息,获得包含所有子节点div的id
var div = window.document.getElementById(e); //获得div对象
if (div != null) //如果不为空则表示,存在子节点
{
var check = div.getElementsByTagName("INPUT"); //获得div中所有的已input开始的标记
for (i = 0; i < check.length; i++) {
if (check[i].type == "checkbox") //如果是checkbox
{
if (!o.checked)
check[i].checked = o.checked; //子节点的状态和父节点的状态相同,即达到全不选
}
}
}
//else //点子节点的时候,使父节点的状态改变,即不为全选
//{
//处理父节点
var divid = o.parentElement.parentElement.parentElement.parentElement.parentElement; //子节点所在的div
while (divid != null) {
var id = divid.id.replace("Nodes", "CheckBox"); //获得根节点的id
if (window.document.getElementById(id) != null) {
window.document.getElementById(id).checked = true;
divid = window.document.getElementById(id).parentElement.parentElement.parentElement.parentElement.parentElement;
}
else {
divid = null;
}
}
}
else {
if (o.tagName == "IMG") {
return true;
}
else {
foo = o;
var sb = o.previousSibling;
if (sb.tagName == "INPUT") {
var imgPlus = document.getElementById(sb.id.replace(/CheckBox/gi, ""));
if (imgPlus) {
eval(imgPlus.href)
}
}
if (window.event) {
window.event.returnValue = false;
return false;
}
else {
evt.preventDefault();
evt.stopPropagation();
}
}
}
}
foreach (TreeNode chkNode in TreeView1.CheckedNodes)
{
.....
}