4

有谁知道如何将复选框放入CTree?我已经有了treeview,但我不知道如何在上面加上复选框和return 0 || 1结果..请帮助..谢谢..

array("id"=>1,"name"=>"<b>SALES</b>","parents"=>
    array(
        array("id"=>10,"name"=>"<b>Sales Order</b>","parents"=>
            array(
                array("id"=>100,"name"=>"Allow view Transaction PO",
                      array('text' => CHtml::checkBox('name', true)),"parents"

                ),
                array("id"=>101,"name"=>"Allow Click Edit Button PO","parents"

                ),
                array("id"=>101,"name"=>"Allow Click New Button PO","parents"

                ),
                array("id"=>101,"name"=>"Allow Click Save Button PO","parents"

                ),
                array("id"=>101,"name"=>"Allow Click Change Document# PO","parents"

                ),
                array("id"=>101,"name"=>"Allow Click Delete Button PO","parents"

                ),
                array("id"=>101,"name"=>"Allow Click Print Button PO","parents"

                ),
                array("id"=>101,"name"=>"Allow Click Lock Button PO","parents"

                ),
                array("id"=>101,"name"=>"Allow Click Unlock Button PO","parents"

                ),
                array("id"=>101,"name"=>"Un Allow Change Amount PO","parents"

                ),
            ),
        ),
    ),
)
4

2 回答 2

3

尝试使用dynatree
为树创建新函数:mytree()

$(function () {
    $("#tree2").dynatree({
        checkbox: true,
        selectMode: 2,
        children: <?php echo json_encode(Department::model()->mytree(75))?>,
        onSelect: function (select, node) {
            // Display list of selected nodes
            var selNodes = node.tree.getSelectedNodes();
            // convert to title/key array
            var selKeys = $.map(selNodes, function (node) {
                return node.data.ID;
            });
            $("#echoSelection2").text(selKeys.join(", "));
            // $("#departments").val(selKeys.join(", "));
        },
        onClick: function (node, event) {
            // We should not toggle, if target was "checkbox", because this
            // would result in double-toggle (i.e. no toggle)
            if (node.getEventTargetType(event) == "title")
                node.toggleSelect();
        },
        onKeydown: function (node, event) {
            if (event.which == 32) {
                node.toggleSelect();
                return false;
            }
        },
    }
}

html代码

<div id="tree2" style="max-height: 250px;max-width:300px;overflow:scroll; " class="noshowchecktree controls "></div>


结果:
在此处输入图像描述

于 2013-09-11T10:55:11.530 回答
3

在每个元素的文本属性中尝试一个复选框:

array(
     ...,
    'text' => CHtml::checkBox('name', true|false) .... 
)
于 2013-09-05T12:01:35.450 回答