javascript - 如何从带有列表标签的对话框中的复选框绑定(bind)属性(选中),SAPui5

标签 javascript binding dialog sapui5

我有一个 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/

相关文章:

android - ProgressDialog 关闭 onClick

variables - 需要帮助理解 Scheme 代码中的绑定(bind)

WPF - 风格中的相对源

jQuery - UI 对话框 - 寻找定时关闭的智能解决方案

php - jQuery 就绪函数在对话框中被调用两次

wpf - 新按钮样式图像不显示

javascript - 沿多条路径动画圆圈

javascript - 更改 ionic View 背景颜色

javascript - 内联(不是内联 block )行为元素的最小宽度

javascript - react.js 替换 img src onerror