使用 ssjs 清除 xpages 重复控件中的所有复选框

Clear all checkboxes in an xpages repeat control with ssjs

我有一个重复控件,它使用 javascript 从 sql table 调用数据。重复有一个列名,其中包含 table 中的数据,另一列中有一个复选框。勾选复选框以将来自重复的数据存储在单独的 table 中。单击按钮时,我想清除重复中的所有复选框。我该怎么做?

这是我试过的方法。

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex"
    xmlns:xc="http://www.ibm.com/xsp/custom">

    <xp:this.resources>
        <xp:script src="/scriptsNewConflictRequest.jss" clientSide="false"></xp:script>
    </xp:this.resources>
    <xp:repeat id="repeat1" rows="30" var="rowData" value="#{javascript:getBusinessUnitsCR()}">
        <xp:table style="width:99.0%">
            <xp:tr>
                <xp:td style="width:50.0%">
                    <xp:label value="#{javascript:rowData.busUnit}" id="label4"></xp:label>
                </xp:td>
                <xp:td align="center" style="width:20%">
                    <xp:checkBox text="Yes" id="checkBU" checkedValue="Yes" uncheckedValue="No">
                        <xp:eventHandler event="onchange" submit="true" refreshMode="norefresh"
                         id="eventHandler1">
                            <xp:this.action><![CDATA[#{javascript:saveOrDelBU();}]]</xp:this.action>
                        </xp:eventHandler>
                    </xp:checkBox>
                </xp:td>
            </xp:tr>
        </xp:table>
    </xp:repeat>

    <xp:button value="Clear Check Boxes" id="button3">
        <xp:eventHandler event="onclick" submit="true" refreshMode="complete" id="eventHandler4">
            <xp:this.action><![CDATA[#{javascript:
                                       //Method 1
                                       getComponent("checkBU").setValue("No");}]]>//Did Not Work
                                      //Method 2 
                                      context.redirectToPage(context.getUrl().toString());//Does not help because the page is on a switch facet and it does not redirect back to this page.
            </xp:this.action>
        </xp:eventHandler>
    </xp:button>
</xp:view>

以上两种方法都试过了。不确定还能尝试什么。

如果您只想在客户端执行此操作,则可以使用此示例中的一些代码:

<xp:button value="Select All" id="button6" styleClass="button">
    <xp:eventHandler event="onclick" submit="false" id="eventHandler3">
        <xp:this.script><![CDATA[var els= XSP.getElementById("#{id:someDiv}").getElementsByTagName("input");
for(var el= els.length-1; el>=0; el--)
    if(els[el].type=="checkbox")
        els[el].checked= true;]]></xp:this.script>
    </xp:eventHandler>
</xp:button>