我有一个 View ,其中包含表;带有 onclick 事件的对话框会弹出,其中包含复选框。当用户选中复选框时,应将相同的列(与复选框)添加到表中。如何将复选框(选中:true)的属性与列(setVisible)绑定(bind)? 谢谢!
例如复选框:
var tv3 = new sap.ui.commons.CheckBox({
text : 'Equipment Tag',
checked: false,
});
表列之一
table.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({
text : "Functional Location"
})
}));
最佳答案
您询问如何将对话框中的复选框选择与表中列的可见性绑定(bind)。您可以使用 JSON 模型来实现此目的:
- 为您想要绑定(bind)的每个列提供可见性属性
- 将这些模型属性设置为每个列控件的可见属性
- 将这些模型属性也绑定(bind)到复选框控件的选定项 属性(property)
双向绑定(bind)就表示效果达到了。我写了一个working example with a JSON model, commons Table, Columns and CheckBox controls in a Dialog给你看。
以下是主要部分:
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" }
]
}));
列上的可见性绑定(bind):
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}" })
}),
复选框上的可见性绑定(bind):
new sap.ui.commons.CheckBox({
text: "First Name",
checked: "{/visibleColumns/firstName}"
})
奖励:您可能对 sap.m 中设置的 TablePerso* 机制感兴趣库对列可见性做了类似的事情。
关于javascript - 如何从带有列表标签的对话框中的复选框绑定(bind)属性(选中),SAPui5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21530934/