【问题标题】:Clear all checkboxes in an xpages repeat control with ssjs使用 ssjs 清除 xpages 重复控件中的所有复选框
【发布时间】:2020-10-27 18:26:46
【问题描述】:

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

这是我尝试过的。

<?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>

尝试了上面列出的两种方法。不知道还能尝试什么。

【问题讨论】:

    标签: javascript xpages xpages-ssjs


    【解决方案1】:

    如果你只想做这个客户端,你可以使用下面例子中的一些代码:

    <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>
    

    【讨论】:

    • 这对我有用,但我想清除所有复选框而不是选中它们。它应该是 els[el].checked=false。但是我仍然想学习如何在 ssjs 中执行此操作,以便我可能需要使用 ssjs 的其他项目。
    • 当然你必须使用false,这只是一个如何在客户端查找和修改所有复选框的示例。在 SSJS 中,与上面的代码相比,它非常复杂(恕我直言,浪费时间,即使对于进一步的项目也是如此)。您可以尝试部分刷新repeat1吗?而checkBU绑定的字段是什么,它的值存储在哪里?
    • checkBU 未绑定。如果选中,则表中的其余行将根据特定客户端的唯一 ID 保存到不同的 sql 表中。是的,我想我会坚持使用这种方法。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多