Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用列表SAPui5上的标签从对话框中的复选框绑定属性(已选中)_Javascript_Binding_Dialog_Sapui5 - Fatal编程技术网

Javascript 如何使用列表SAPui5上的标签从对话框中的复选框绑定属性(已选中)

Javascript 如何使用列表SAPui5上的标签从对话框中的复选框绑定属性(已选中),javascript,binding,dialog,sapui5,Javascript,Binding,Dialog,Sapui5,我有一个视图,其中包含表;“with onclick事件”对话框弹出,其中包含复选框。当用户选中复选框时,应将相同的列(作为复选框)添加到表中。如何将复选框(选中:true)的属性与列(setVisible)绑定? 谢谢大家! 复选框的ex: var tv3 = new sap.ui.commons.CheckBox({ text : 'Equipment Tag', checked: false, }); 表列中的一个 table.addColumn(new sap.ui.t

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

复选框的ex:

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

您要问的是如何在对话框中绑定复选框选择,并在表中显示列。您可以使用JSON模型来实现这一点:

  • 具有要绑定的每列的可见性属性
  • 将这些模型属性转换为每个列控件的visible属性
  • 将这些模型属性也绑定到选中的复选框控件 财产
双向绑定意味着实现了该效果。我写了一封信给你看

以下是突出的部分:

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}" })
}),
复选框上的可见性绑定:

new sap.ui.commons.CheckBox({
    text: "First Name",
    checked: "{/visibleColumns/firstName}"
})

额外好处:您可能对库中设置的TablePerso*机制感兴趣,该机制对列的可见性也有类似的作用。

您正在询问如何在对话框中绑定复选框选择,以显示表中的列。您可以使用JSON模型来实现这一点:

  • 具有要绑定的每列的可见性属性
  • 将这些模型属性转换为每个列控件的visible属性
  • 将这些模型属性也绑定到选中的复选框控件 财产
双向绑定意味着实现了该效果。我写了一封信给你看

以下是突出的部分:

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}" })
}),
复选框上的可见性绑定:

new sap.ui.commons.CheckBox({
    text: "First Name",
    checked: "{/visibleColumns/firstName}"
})

奖励:您可能对库中设置的TablePerso*机制感兴趣,该机制对列可见性也有类似的作用。

亲爱的Qmarco,非常感谢您抽出时间!:)我是一个非常初学者,所以非常欢迎好的提示!)对不起,克马克洛…没戴眼镜回答哈哈:)你好!qmacro,如果你有时间,我有问题。TO有更改,因此功能不同。目前我有一个对话框,它包含两个列表框。用户将列表项从一个列表框指向/拍摄到另一个列表框。因此,另一个列表是表中的列。在这种情况下,最好的方法是什么?我想可以比较两个数组(左边是首字母,右边是什么),然后通过循环添加列?不过我不确定。无论如何谢谢你!您可能希望将此问题重新表述为(a)更具体,(b)作为问题而不是评论。当然!我应该构建的是:一个有91列的表(最初只有很少几列是可见的)。用户可以通过打开对话框来选择他想要的列。对话框中有两个列表框和两个按钮(添加、删除、保存)。第一个列表框有列表项(91)。第二个最初是空的。用户可以将列表项从1移到另一个,然后再移回来。当用户按“保存”时,第二个列表中的项目将成为表中的一列。我希望它更清楚。谢谢亲爱的Qmarco,非常感谢您抽出时间!:)我是一个非常初学者,所以非常欢迎好的提示!)对不起,克马克洛…没戴眼镜回答哈哈:)你好!qmacro,如果你有时间,我有问题。TO有更改,因此功能不同。目前我有一个对话框,它包含两个列表框。用户将列表项从一个列表框指向/拍摄到另一个列表框。因此,另一个列表是表中的列。在这种情况下,最好的方法是什么?我想可以比较两个数组(左边是首字母,右边是什么),然后通过循环添加列?不过我不确定。无论如何谢谢你!您可能希望将此问题重新表述为(a)更具体,(b)作为问题而不是评论。当然!我应该构建的是:一个有91列的表(最初只有很少几列是可见的)。用户可以通过打开对话框来选择他想要的列。对话框中有两个列表框和两个按钮(添加、删除、保存)。第一个列表框有列表项(91)。第二个最初是空的。用户可以将列表项从1移到另一个,然后再移回来。当用户按“保存”时,第二个列表中的项目将成为表中的一列。我希望它更清楚。非常感谢。