石头园  
每日收获

技术来自google

首先在.cs文件里给treeview控件添加属性
PageTV.Attributes.Add("oncheck", "tree_oncheck()");

然后在相应的页面上在<html和<head之间加入以下javascript代码
<script language="javascript">
<!--

function tree_oncheck()
{
    var node = PageTV.getTreeNode(event.treeNodeIndex);
    var Pchecked = node.getAttribute("checked");
    setcheck(node, Pchecked);
    PageTV.queueEvent('oncheck', node.getNodeIndex());
}

function setcheck(node, Pc)
{
    var ChildNode = new Array();
    ChildNode = node.getChildren();
    if (parseInt(ChildNode.length) != 0)
    {
        for (var i = 0; i < ChildNode.length; i++)
        {
            var cNode = ChildNode[i];
            if (cNode.getAttribute("checked") != Pc)
            {
                if (parseInt(cNode.getChildren().length) != 0)
                    setcheck(cNode, Pc);
                cNode.setAttribute("checked", Pc);
                PageTV.queueEvent('oncheck', cNode.getNodeIndex());
            }
        }
    }
}

//-->
</script>

整个功能的实现需要修改微软treeview控件的一个Bug
需要修改inetpub\wwwroot\webctrl_client\1_0\treeview.htc。
把function doCheckboxClick(el)中的第一行,
el.checked = !el.checked;
改成:
el.checked = !el.getAttribute("checked");

posted on 2006-08-20 01:03  石头仔  阅读(733)  评论(1编辑  收藏  举报