2

我有一个视图,其中包含表格;带有 onclick 事件对话框会弹出其中的复选框。当用户选中复选框时,应将相同的列(作为复选框)添加到表中。如何将复选框的属性(选中:true)与 column(setVisible) 绑定?谢谢!

复选框前:

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"
    })
}));
4

1 回答 1

4

您正在询问如何将对话框中的复选框选择绑定到表中列的可见性。您可以使用 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* 机制感兴趣,它对列可见性做了类似的事情。

于 2014-02-04T08:43:21.940 回答