使用 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>
我有一个重复控件,它使用 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>