您正在询问如何将对话框中的复选框选择绑定到表中列的可见性。您可以使用 JSON 模型来实现此目的:
- 具有要绑定的每个列的可见性属性
- 那些模型属性到每个列控件的可见属性
- 将这些模型属性也绑定到复选框控件的选定属性
双向绑定就意味着达到了效果。我在对话框中编写了一个带有 JSON 模型、公共表、列和复选框控件的工作示例,供您查看。
以下是重点部分:
JSON模型中的可见性:
sap.ui.getCore().setModel(new sap.ui.model.json.JSONModel({
visibleColumns: {
firstName: true,
lastName: true
},
names: [
{ firstName: "DJ", lastName: "Adams" },
{ firstName: "Joseph", lastName: "Adams" }
]
}));
列上的可见性绑定:
new sap.ui.table.Column({
visible: "{/visibleColumns/firstName}",
label: new sap.ui.commons.Label({ text: "First Name" }),
template: new sap.ui.commons.TextView({ text: "{firstName}" })
}),
CheckBox 上的可见性绑定:
new sap.ui.commons.CheckBox({
text: "First Name",
checked: "{/visibleColumns/firstName}"
})
奖励:您可能对sap.m库中设置的 TablePerso* 机制感兴趣,它对列可见性做了类似的事情。