SAPUI5 - 隐藏表列?

时间:2016-04-05 13:02:00

标签: sap sapui5

我有一个从xml视图呈现的表。

有没有办法可以隐藏控制器中的整个列?

3 个答案:

答案 0 :(得分:2)

对于记录,SAPUI5中有两个表格控件:sap.m.Tablesap.ui.table.Table

对于两者,您可以将列的visible属性设置为false以隐藏该列。

oTable.getColumns()[i].setVisible(false)

编辑: 评论的附加要求:

要获取Controller中的表,请使用Controller的byId函数和表的id:

this.byId("tableId").getColumns()[i].setVisible(false)

(假设this是Controller实例。)

答案 1 :(得分:2)

偶然发现了这个问题以寻找别的东西。 解决问题的更优雅的方法是为每列创建模型和属性。

var oVisModel = new JSONModel({
            row1: "true",
            row2: "true"
});
this.setModel(oVisModel, "visModel");

由于JSONModels以2方式绑定,您现在可以绑定XML中的visible属性

<m:Column
        id="row1"
        visible="{visModel>/row1}"
        minScreenWidth=""
        demandPopin="false">
        <m:Text text="{i18n>row1}" />
</m:Column>

如果您现在想要更改控制器中的可见性,可以这样做:

//if model is bound to component.js
this.getOwnerComponent().getModel("visModel").setProperty("/row1", "false");

//if model is bound to App.controller.js or how ever your main view controller is named
this.getView().getModel("visModel").setProperty("/row1", "false");

即使答案有点晚,我希望它能帮助那些稍后发现这个问题的人。

此致 埃里克

答案 2 :(得分:0)

解决方案是:

view.byId("DefaultTimesTable").getColumns()[4].setVisible(false)