用javascript實現treeview上的checkbox的新發現 轉

來源:互聯網
上載者:User
次實現的功能只能使選中/不選中父結點時,令它的所有子結點都設定為跟父結點一樣的狀態。
有時候,在選中一個子結點時,我們希望它的父結點也同時被選中。如下javascript代碼可以實現這個功能:
//for treeview controller,其中pageTV為treeview對象
function tree_oncheck()
{
    var node = pageTV.getTreeNode(event.treeNodeIndex);
    var Pchecked = node.getAttribute("checked");
    if (Pchecked == true)
    {
     setfathercheck(node);     //這個函數實現了上述的附加功能
    }
    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());
            }
        }
    }
}

function setfathercheck(node)
{
    var FatherNode;
    FatherNode = node.getParent();
    if (FatherNode != null )
    {
            if (FatherNode.getAttribute("checked") != true)
            {
    setfathercheck(FatherNode);
                FatherNode.setAttribute("checked", true);
                pageTV.queueEvent('oncheck', FatherNode.getNodeIndex());
           }
    }
}

需要修改微軟treeview控制項的一個Bug
需要修改inetpub\wwwroot\webctrl_client\1_0\treeview.htc。
把function doCheckboxClick(el)中的第一行,
el.checked = !el.checked;
改成:
el.checked = !el.getAttribute("checked");

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.