0

我试图从CC1将不同按钮的值/数据源传递给子CC2。从cc设置cc自定义属性cc

我:


    • CC1
      • 名为 “test”
      • CC2与自定义属性 “stringDataSrc”
        • 计算字段名为 “showValue” 按钮

计算字段 “showValue” 显示stringDataSrc的值。
按钮 “测试” SSJS代码:getComponent(CC2).getAttributes()尺寸()返回0


如何更改CC2的自定义属性值从按钮 “测试” 与onclick事件?

+1

一些示例XML在这里很有用。 –

回答

2

检索您的属性值,如果我正确地解释你的目标,你要寻找的方法是getPropertyMap

getComponent("cc2").getPropertyMap().put("stringDataSrc", newValue); 

这应该更新属性在该自定义控件中引用的值(通过compositeData)返回新值。

+0

这按预期工作。 – Ermo

+0

现在我试图 getComponent(“cc2”)。getPropertyMap()。put(“viewDataSrc”,getView(“targetView”); 我设置cc1属性viewDataSrc为类型Domino.View.Data和编辑器来查看选取器/数据Source Picker。无法使用它。 – Ermo

0

由于目前缺乏上面的代码做了一些假设。

在cc2中,您无法真正改变自定义属性,因为它是从包含的cc1传入的。所以你需要做的是让按钮改变传入cc2的值,然后刷新cc2。

因此,例如,而不是<xc:cc2 customProperty="Hello">你要使用<xc:cc2 customProperty="#{dataSource.value}">

然后你的按钮可以更新dataSource.value和刷新CC2。

您还可以最容易通过compositeData.customProperty

+0

我认为这是一个好主意。我如何更新数据源? – Ermo

+0

那么,例如,如果您不需要将它保存在文档上,则可以使用viewScope作为数据源。所以你的按钮可以做'viewScope.customProperty =“value”'。 –