Я использую следующий код (в контроллере):Как сделать SAPUI5 TreeTable расширенным по умолчанию?
onAfterRendering: function() {
var t, i;
if (!this.initExpand) {
try {
t = this.getView().getContent()[1];
for (i=0; i<t.getRows().length; i++) {
t.expand(i);
}
this.initExpand = true;
} catch (e) {
console.log("expand failed: "+e.message);
}
}
},
для начального (после загрузки и рендеринга) расширение всех узлов из следующих sap.ui.table.TreeTable (с учетом):
<mvc:View
displayBlock="true"
xmlns:l="sap.ui.layout"
xmlns:table="sap.ui.table"
xmlns:mvc="sap.ui.core.mvc"
controllerName="sap.app.controller.scr1"
>
<l:HorizontalLayout>
<SearchField liveChange="onSearch"/>
</l:HorizontalLayout>
<table:TreeTable rows="{/root}"
selectionMode="None"
visibleRowCount="11"
showColumnVisibilityMenu="true"
enableCellFilter="true"
enableColumnReordering="false"
class="sapUiSizeCompact"
expandFirstLevel="true"
>
<table:columns>
...
</table:columns>
</table:TreeTable>
</mvc:View>
Но иногда узлы все еще не расширены (они все еще рухнули).
Есть ли какой-нибудь другой (более стабильный) способ для первоначального расширения всех узлов sap.ui.table.TreeTable?
Я не могу получить этот объект TreeTable с помощью функции byId, потому что идентификатор этой TreeTable (contatenated с идентификатором представления) является динамическим (изменения). Однако this.getView(). GetContent() [1] .expandToLevel (3); действительно всегда работает! Спасибо за ответ, @ carlosmendes-pt! – valeryan