Beispiel #1
0
        // при загрузке сохраняются и восстанавливаются состояния раскрытых и выбранных нод
        public string GetLoadDataScript(JsArray data, bool isFlatData)
        {
            string flatToTreeConvertFunctionName = "buhta.FancyTree.convertFlatDataToTree";
            if (!isFlatData)
                flatToTreeConvertFunctionName = "";

            return @"
            (function(){

            var expanded_state={};
            var selected_state={};
            var active_state={};

            var rootNode=$('#" + UniqueId + @"').fancytree('getRootNode');

            if (rootNode)
              rootNode.visit(function(node){
             expanded_state[node.key]=node.isExpanded();
             selected_state[node.key]=node.isSelected();
             active_state[node.key]=node.isActive();
              });

            $('#" + UniqueId + @"').fancytree('getTree').clearFilter();

            $('#" + UniqueId + @"').fancytree('option','source'," + flatToTreeConvertFunctionName + "(" + data.ToJson() + @"));

            rootNode=$('#" + UniqueId + @"').fancytree('getRootNode');

            rootNode.visit(function(node){
             if (expanded_state[node.key]!=undefined)
            node.setExpanded(expanded_state[node.key]);
             if (selected_state[node.key]!=undefined)
            node.setSelected(selected_state[node.key]);
             if (active_state[node.key]!=undefined)
            node.setActive(active_state[node.key]);
            });

            var match=$('#" + UniqueId + @"').fancytree('getTree').filter_match;
            if (match) {
              var opts = {
               autoExpand: true,
               leavesOnly: true
              };
              $('#" + UniqueId + @"').fancytree('getTree').filterNodes(match, opts);
            }

            })();
            ";
        }