2015-01-05 72 views
2

Domino 8.5.3 FP5,Designer 9.0.1。如何使复选框可编辑

我有一个空的xpage只包含下面的复选框。我无法使其可编辑。它显示正确的值,但显示为禁用。

 <xp:checkBox text="Label" id="checkBox1" uncheckedValue="true" 
     checkedValue="false" 
     value="#{javascript:jBeanConfigSupport.validationEnabledTxt}"> 
     </xp:checkBox> 

如果我删除绑定到Java bean,所有运行良好。这是Java bean代码(部分)

private boolean isValidationEnabled=true; 

    public String getValidationEnabledTxt() { 
     return String.valueOf(isValidationEnabled); 
    } 

    public void setValidationEnabledTxt(String onOff) { 
     isValidationEnabled=Boolean.parseBoolean(onOff); 
    } 
    public void setValidationEnabledTxt(boolean onOff) { 
     isValidationEnabled=onOff; 
    } 

我在哪里错了?

回答

6

您使用SSJS进行绑定,因此不是绑定到您的bean的validationEnabledTxt属性,而是使用jBeanConfigSupport.validationEnabledTxt的结果来确定它应该绑定的内容。 value="#{jBeanConfigSupport.validationEnabledTxt}"应该工作映射到getter和setter。

+0

谢谢保罗。它用作表达式语言。非常感谢你,并感谢@steve澄清。没有办法使用SSJS? –

+1

如果要绑定到bean的属性,则需要使用表达式语言。 SSJS只是一个字符串,在运行时或页面加载时计算以返回值。你不想绑定到SSJS的结果,所以SSJS是错误的方法。如果它是一个dominoDocument而不是一个bean,SSJS将绑定到一个字段的值而不是一个字段本身。这与试图在CSJS中运行SSJS类似 - SSJS由服务器计算并由CSJS使用,SSJS本身不在“CSJS内”使用。 –

1

弗朗西斯

你需要有一个工作的setter方法为这是编辑。在你的情况下,可能会导致UI中的字段为只读的setValidationEnabledTxt()方法出现问题。

尝试添加“this”到您的代码,以便它读取this.isValidationEnables = Boolean.parseBoolean(onOff);

+0

没有效果,谢谢steve –

+0

请尝试使用表达式语言绑定到豆建议,然后更新是否修复它。如果这不起作用,那么尝试将该字段的类型从布尔型更改为字符串,然后从那里回溯。 (布尔*应该*就好了) –