如何使SAPUI5 TreeTable默认扩展?

时间:2016-07-06 12:20:12

标签: expand 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的所有节点?

2 个答案:

答案 0 :(得分:3)

看看这个demo

/* code to expand */  
for (i=0; i<oTable.getRows().length; i++) {
    oTable.expand(i);
}

答案 1 :(得分:3)

以下代码有效:

onAfterRendering: function(){

   var oTreeTable = this.getView().byId("myTreeTableId");
   oTreeTable.expandToLevel(3); //number of the levels of the tree table.

}

其中'3'是树表的级别数,

myTreeTableId:是XML视图中控件的ID:

<table:TreeTable id="myTreeTableId" ...