当属性在组中时,为复合数据设置值

时间:2012-04-06 17:45:28

标签: xpages

我的自定义控件中有自定义属性。自定义属性位于Field1组中,称为ClientID。组和字段位于我的自定义属性定义中。我想在页面加载时设置它。所以我做了以下几点:

compositeData.Field1.ClientID = getClientId("Field1")

当我这样做时,我收到错误:

'compositeData.Field1'为空

但是如果我定义一个名为Field1_ClientID的根的属性并执行以下操作:

compositeData.Field1_ClientID = getClientId("Field1")

然后一切顺利。如何在自定义属性中使用组?

3 个答案:

答案 0 :(得分:2)

布鲁斯,

compositeData是一个属性映射。如果其中没有值,则compositeData.Field1将为null(因为它也是属性映射)。

所以你可以这样做;

compositeData.Field1= { ClientID: getClientId("Field1") }

答案 1 :(得分:0)

要在组“group1”中设置属性“property1”,您可以执行以下操作:

compositeData.group1.property1 = "test";

您可以在自定义控件的beforePageLoad或afterPageLoad事件中运行上述代码。

我认为您的问题是您在设置自定义控件之前发生的事件中设置了值。

答案 2 :(得分:0)

好的,我对自定义控件的组功能进行了快速测试(之前从未使用过)。

在该组中给出一组“testGroup”和“testProp”的属性。

以下在beforePageLoad中工作:

compositeData.testProp = "example1";
print("Test1: " + compositeData.testProp);

以下不起作用:

compositeData.testGroup.testProp = "example2";
print("Test2: " + compositeData.testGroup.testProp);

因此,我认为group属性可能只是一种逻辑分组属性而不是定义具有多个属性的对象的方法。尝试仅引用属性而不是组。