代码之家  ›  专栏  ›  技术社区  ›  pabrams

如何使vss sdk treeview默认折叠?

  •  0
  • pabrams  · 技术社区  · 6 年前

    如何获取类型的组合控件 TreeView.ComboTreeBehaviorName 默认情况下是否折叠其节点?

    我试过看文件 here here ,但这对我来说似乎完全没有帮助。

    我还尝试检查类型(在vss.d.ts中)以查看是否可以设置属性:

    • 我发现 maxAutoExpandDropWidth 它声称 Specifies the max size when auto-expand drop bigger than combo ,但将其设置为0或1似乎没有任何效果。
    • 我发现 dropOptions?: IComboDropOptions; 但看起来 也有任何展开/折叠属性。
    • 我试着添加一个属性 collapsed: true 到icombooptions
    • 签名 Controls.Enhancement.enhance 方法似乎 建议我可以通过一些选项作为 type 财产 上 IComboOptions ,但我试过了,但做不到,因为 这个 类型 属性需要字符串,而不是对象。
    • 设置 node.expanded = false 传递树之前的所有节点 致 source 财产

    以下是一些相关的代码摘录:

    import * as Controls_Combos from "VSS/Controls/Combos";
    import * as Controls from "VSS/Controls";
    import * as TreeView from "VSS/Controls/TreeView";
    
    
    
     this._$areaInput = $("<input type='text' id='inputAreaPicker' />")
                    .val(someValueThatDoesnotMatter)
                    .bind("blur", (e) => {
                        this._updateSomeOtherField();
                        this._validate();
                    });
    }
    

            <Controls_Combos.Combo>Controls.Enhancement.enhance(
                Controls_Combos.Combo,
                this._$areaInput,
                <Controls_Combos.IComboOptions> {
                    type: TreeView.ComboTreeBehaviorName,
                    source: ConvertToTreeNodes(someItems),  // loads multi-level tree successfully
                    mode: 'drop',
                    allowEdit: false,
                    maxAutoExpandDropWidth: 1, // seems to have no effect
                    collapsed: true  // no effect
                }
            );
    
    
    export function ConvertToTreeNodes(items): TreeView.TreeNode[] {
        // let _this = this;
        return $.map(items, function (item) {
            let node = new TreeView.TreeNode(item.name);
            node.id = item.id;
            if (item.children && item.children.length > 0) {
                node.addRange(ConvertToTreeNodes(item.children));
            }
            node.expanded = false;
            return node;
        });
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   pabrams    6 年前

    答案是一个名为“treelevel”的未记录属性:

    <Controls_Combos.Combo>Controls.Enhancement.enhance(
                Controls_Combos.Combo,
                this._$areaInput,
                <Controls_Combos.IComboOptions> {
                    type: TreeView.ComboTreeBehaviorName,
                    source: ConvertToTreeNodes(someItems),
                    mode: 'drop',
                    allowEdit: false,
                    treeLevel: 0 // collapse to first level by default
    
                }
            );
    

    I've requested that it be documented