0

我有一个复选框组,其值是通过使用另一个复选框组的选定值计算的。所以当我这样做的时候

var check6:com.ibm.xsp.component.xp.XspSelectManyCheckbox = getComponent("check6");
ArrSelected = check6.getSelectedValues();

要获取选定的值,会发生以下异常:

Error calling method 'getSelectedValues()' on java class   'com.ibm.xsp.component.xp.XspSelectManyCheckbox'
java.util.ArrayList incompatible with [Ljava.lang.Object;

Check6 从在 beforePageLoad 事件上计算的会话范围变量中获取其值,并且我还设置了默认值。

请注意,这不会在页面加载时发生,而是在第一次部分刷新时发生。有谁知道这个异常表示什么?

非常感谢!

4

2 回答 2

1

将第二个复选框组的 selectItems 的值绑定到与第一个复选框组的 value 属性绑定的完全相同的表达式。

这篇文章对原因进行了冗长的描述,但这里有一个非常快速的总结:如果你问一个组件它的值是什么,它必须问它绑定到的数据。所以跳过组件,自己询问数据。

因此,如果您的第一组如下所示:

<xp:checkBoxGroup value="#{currentDocument.FirstField}">...

然后你的第二组应该是这样的:

<xp:checkBoxGroup value="#{currentDocument.SecondField}">
  <xp:selectItems value="#{currentDocument.FirstField}">
</xp:checkBoxGroup>

当第一组中的用户选择发布到数据源时,第二组将反映更改,因为它们链接到该数据源上的相同属性。轻微警告:如果您的页面包含任何必填字段,您可能需要跳过对onchange触发第二组重新计算的事件的验证。

于 2013-04-17T12:40:54.690 回答
-1

原因很简单,这个类没有方法 getSelectedValues() (据我所知,在这里查看更多信息:http ://public.dhe.ibm.com/software/dw/lotus/Domino-Designer/ JavaDocs/XPagesExtAPI/8.5.2/index.html?overview-summary.html )

也许你可以将控件绑定到一个作用域变量,然后访问这个变量来计算你的其他值?

于 2013-04-17T10:55:32.763 回答