如何让 vss sdk treeview 默认折叠?
How do I get vss sdk treeview to collapse by default?
如何让 TreeView.ComboTreeBehaviorName
类型的组合控件默认折叠其节点?
我已经尝试查看文档 here and here,但它似乎对我完全没有帮助。
我还尝试检查类型(在 vss.d.ts 中)以查看是否有 属性 我可以设置:
- 我发现
maxAutoExpandDropWidth
声称它是Specifies the max size when auto-expand drop bigger than combo
,但是将它设置为0或1似乎没有任何效果。
- 我找到了
dropOptions?: IComboDropOptions;
但好像没有
也有 expand/collapse 的任何属性。
- 我尝试将 属性
collapsed: true
添加到 IComboOptions
Controls.Enhancement.enhance
方法的签名似乎
建议我可以将一些选项作为 type
属性 的一部分传递
在 IComboOptions
上,但我试过了但做不到,因为
type
属性 想要一个字符串,而不是一个对象。
- 在传递树之前为所有节点设置
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;
});
}
答案是一个未记录的 属性,名为 '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
}
);
如何让 TreeView.ComboTreeBehaviorName
类型的组合控件默认折叠其节点?
我已经尝试查看文档 here and here,但它似乎对我完全没有帮助。
我还尝试检查类型(在 vss.d.ts 中)以查看是否有 属性 我可以设置:
- 我发现
maxAutoExpandDropWidth
声称它是Specifies the max size when auto-expand drop bigger than combo
,但是将它设置为0或1似乎没有任何效果。 - 我找到了
dropOptions?: IComboDropOptions;
但好像没有 也有 expand/collapse 的任何属性。 - 我尝试将 属性
collapsed: true
添加到 IComboOptions Controls.Enhancement.enhance
方法的签名似乎 建议我可以将一些选项作为type
属性 的一部分传递 在IComboOptions
上,但我试过了但做不到,因为type
属性 想要一个字符串,而不是一个对象。- 在传递树之前为所有节点设置
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;
});
}
答案是一个未记录的 属性,名为 '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
}
);