如何获得类型的组合控件TreeView.ComboTreeBehaviorName
以使其节点默认折叠?
我试过查看文档here和here,但这对我来说似乎完全没有帮助。
我还尝试检查类型(在 vss.d.ts 中)以查看是否有可以设置的属性:
- 我发现
maxAutoExpandDropWidth
which 声称 itSpecifies the max size when auto-expand drop bigger than combo
,但将其设置为 0 或 1 似乎没有任何效果。 - 我发现
dropOptions?: IComboDropOptions;
但它似乎也没有任何展开/折叠的属性。 - 我尝试向
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;
});
}