Как сделать так, чтобы vss sdk treeview свернулся по умолчанию?
Как я могу получить комбинированный контроль типа TreeView.ComboTreeBehaviorName
чтобы его узлы были свернуты по умолчанию?
Я попытался просмотреть документацию здесь и здесь, но мне она кажется совершенно бесполезной.
Я также попытался проверить типы (в 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
, но я попробовал это и не мог сделать это, потому что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;
});
}
1 ответ
Решение
Ответом является недокументированное свойство с именем 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
}
);