在后端更改复选框的状态

Change the state of a checkbox in the backend

在 ssjs 中,我尝试更改复选框的状态。 我试过了:

doc.replaceItemValue( 'picWeb', "true" );

这似乎没有改变任何东西(复选框没有变为选中)

我也试过了:

doc.replaceItemValue( 'picWeb', true );

这会引发错误

([TypeError]异常调用方法NotesDocument.replaceItemValue(string, boolean) null)

如果我理解得很好:
你不能用 replaceItemValue 更改复选框(布尔值),但我该如何更改它呢? 是否可以使用 ssjs 或 java 或 ...

使用属性 checkedValueuncheckedValue:

在复选框中定义哪个字符串与选中的值相关,哪个与未选中的值相关

    <xp:checkBox 
        ... 
        uncheckedValue="false" 
        checkedValue="true">
    </xp:checkBox>

您可以设置值,然后使用

document1.replaceItemValue("picWeb", "true") 

这是一个演示如何在 SSJS 中设置复选框值的完整示例:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.data>
        <xp:dominoDocument var="document1" formName="Test" />
    </xp:this.data>
    <xp:checkBox text="picWeb" id="checkBox1" 
        value="#{document1.picWeb}" 
        uncheckedValue="false" 
        checkedValue="true">
    </xp:checkBox>
    <xp:button value="True" id="button2">
        <xp:eventHandler event="onclick" submit="false" 
            refreshMode="partial" refreshId="checkBox1">
            <xp:this.action><![CDATA[#{javascript:
                document1.replaceItemValue("picWeb", "true")
            }]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:button value="False" id="button3">
        <xp:eventHandler event="onclick" submit="false" 
            refreshMode="partial" refreshId="checkBox1">
            <xp:this.action><![CDATA[#{javascript:
                document1.replaceItemValue("picWeb", "false")
            }]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:button value="Submit" id="button1">
        <xp:eventHandler event="onclick" submit="true" 
            refreshMode="complete" immediate="false" save="true">
        </xp:eventHandler>
    </xp:button>
</xp:view>

该值在文档中设置为字符串