我有一个从xml视图呈现的表。
有没有办法可以隐藏控制器中的整个列?
答案 0 :(得分:2)
对于记录,SAPUI5中有两个表格控件:sap.m.Table
和sap.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)