用過flytreeview控件的兄弟救命啊~~flytreeview控件的節點可以多選嗎?(不使用Checkbox的情況下多選)
要怎樣設置?

解决方案 »

  1.   

    flytreeview不支持多选,不过你可以把checkbox隐藏起来达到你要的效果,方法如下:<NineRays:FlyTreeView runat="server" ID="ftv" ImageSet="Classic"
        OnInitializedJavascript="initTreeView" OnNodeEventJavascript="nodeEventHandler" 
        CanBeSelected="false" ContentClickTogglesCheckbox="true" IsCheckbox="false" >
        <Nodes>
          <!-- 填一些节点内容,或者通过后台设置节点内容  -->
        </Nodes>
    </NineRays:FlyTreeView><script type="text/javascript">function initTreeView(treeview) {
    treeview.find(function(node) {
    changeNode(node, node.getChecked());
    });
    }
                    
    function nodeEventHandler(treeview, node, eventType) {
    if (eventType == "checked") changeNode(node, true);
    else if (eventType == "unchecked") changeNode(node, false);
    }function changeNode(node, checked) {
    var div = node.getElement();
    div.parentNode.parentNode.style.background = checked? "blue" : "";
    div.style.color = checked? "white" : "";
    }
    </script>
    上面代码的原理是:
    IsCheckbox="false": 关闭checkbox显示
    ContentClickTogglesCheckbox="true": 点击节点时改变checked状态(虽然不显示但仍可改变状态)
    OnInitializedJavascript="initTreeView": 初始化时调用initTreeView函数,把初始状态为checked的节点高亮显示
    OnNodeEventJavascript="nodeEventHandler": 在节点checked状态改变时,改变节点的高亮显示方式