如何使用 Xpages onchange 事件激活按钮
How do I use an Xpages onchange event to activate a button
我正在尝试寻找如何为复选框创建 onChange 事件,为同一页面上的按钮启动按钮按下。我在 google 上进行了搜索,但找不到如何完成的。在 xpages 中可以这样吗?
编辑:更多信息和代码
我的问题是用户 运行 搜索并希望选择忽略已取消的记录或包含它们。我尝试了好几天只通过单击复选框来更新视图,但它只会在用户更改复选框值并单击页面上的某处后刷新。我在复选框上尝试了部分刷新和完全刷新等以刷新 dynamicviewpanel 等。我尝试使用 viewScope 变量来确定复选框值但没有任何效果。我发现如果我包含一个按钮来进行完全刷新,它会起作用,我想我可以隐藏该按钮并让复选框单击该按钮。我尝试在下面添加 Knut 的建议,但它仍然只在我同时单击按钮或页面上的其他地方时有效。
<?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:eventHandler event="onClientLoad" submit="false">
<xp:this.script><![CDATA[dojo.query(".xspLinkViewColumn").attr
("target", "_blank");]]></xp:this.script>
</xp:eventHandler>
<xc:OneUILayout id="cc4cconeuilayout"
navigationPath="/OneUI/SearchPage">
<xp:this.facets>
<xp:panel xp:key="LeftColumn" id="panel4">
<xc:LeftOneUI id="cc4ccLeftOneUI"></xc:LeftOneUI>
</xp:panel>
</xp:this.facets>
<xp:panel>
<xp:label value="This is the result of the search page"
id="label5" style="font-weight:bold">
</xp:label>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:label value="Search String:" id="label1"></xp:label>
<xp:inputText id="inputText1" value="#
{param.search}"></xp:inputText>
<xp:checkBox text="Cancelled Contracts Omitted" id="OmitCancelled"
value="#{viewScope.test}" style="padding-left:3.0em">
<xp:eventHandler event="onchange" submit="false">
<xp:this.script><![CDATA[document.getElementById('#
{id:button1}').click()]]></xp:this.script>
</xp:eventHandler>
</xp:checkBox>
<xp:button value="Refresh Omitting"
id="button1" style="margin-left:2.0em">
<xp:eventHandler event="onclick"
submit="true" refreshMode="complete">
<xp:this.script><![CDATA[alert("hi")]]></xp:this.script>
</xp:eventHandler>
</xp:button>
<xp:panel id="maincontentpanel">
<xe:dynamicViewPanel rows="50" id="dynamicViewPanel1"
width="100%" partialRefresh="true">
<xe:this.data>
<xp:dominoView var="view">
<xp:this.viewName>
<![CDATA[#{javascript:if(getComponent
('OmitCancelled').isChecked()){
viewName = "ContractsFlatByYear"
}else {
viewName = "ContractsFlatByYearandCancelled"
}}]]>
</xp:this.viewName>
<xp:this.search><![CDATA[#{javascript:return param.search;}]]>
</xp:this.search>
</xp:dominoView>
</xe:this.data>
</xe:dynamicViewPanel>
</xp:panel>
</xp:panel>
</xc:OneUILayout>
</xp:view>
这是自动单击复选框 onchange 事件上的按钮的示例:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:checkBox
text="check it"
id="checkBox1"
value="#{viewScope.test}">
<xp:eventHandler
event="onchange"
submit="false">
<xp:this.script><![CDATA[
document.getElementById('#{id:button1}').click()
]]></xp:this.script>
</xp:eventHandler>
</xp:checkBox>
<br />
<xp:button
value="Label"
id="button1">
<xp:eventHandler
event="onclick"
submit="false">
<xp:this.script><![CDATA[alert("hi")]]></xp:this.script>
</xp:eventHandler></xp:button>
</xp:view>
我正在尝试寻找如何为复选框创建 onChange 事件,为同一页面上的按钮启动按钮按下。我在 google 上进行了搜索,但找不到如何完成的。在 xpages 中可以这样吗?
编辑:更多信息和代码
我的问题是用户 运行 搜索并希望选择忽略已取消的记录或包含它们。我尝试了好几天只通过单击复选框来更新视图,但它只会在用户更改复选框值并单击页面上的某处后刷新。我在复选框上尝试了部分刷新和完全刷新等以刷新 dynamicviewpanel 等。我尝试使用 viewScope 变量来确定复选框值但没有任何效果。我发现如果我包含一个按钮来进行完全刷新,它会起作用,我想我可以隐藏该按钮并让复选框单击该按钮。我尝试在下面添加 Knut 的建议,但它仍然只在我同时单击按钮或页面上的其他地方时有效。
<?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:eventHandler event="onClientLoad" submit="false">
<xp:this.script><![CDATA[dojo.query(".xspLinkViewColumn").attr
("target", "_blank");]]></xp:this.script>
</xp:eventHandler>
<xc:OneUILayout id="cc4cconeuilayout"
navigationPath="/OneUI/SearchPage">
<xp:this.facets>
<xp:panel xp:key="LeftColumn" id="panel4">
<xc:LeftOneUI id="cc4ccLeftOneUI"></xc:LeftOneUI>
</xp:panel>
</xp:this.facets>
<xp:panel>
<xp:label value="This is the result of the search page"
id="label5" style="font-weight:bold">
</xp:label>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:label value="Search String:" id="label1"></xp:label>
<xp:inputText id="inputText1" value="#
{param.search}"></xp:inputText>
<xp:checkBox text="Cancelled Contracts Omitted" id="OmitCancelled"
value="#{viewScope.test}" style="padding-left:3.0em">
<xp:eventHandler event="onchange" submit="false">
<xp:this.script><![CDATA[document.getElementById('#
{id:button1}').click()]]></xp:this.script>
</xp:eventHandler>
</xp:checkBox>
<xp:button value="Refresh Omitting"
id="button1" style="margin-left:2.0em">
<xp:eventHandler event="onclick"
submit="true" refreshMode="complete">
<xp:this.script><![CDATA[alert("hi")]]></xp:this.script>
</xp:eventHandler>
</xp:button>
<xp:panel id="maincontentpanel">
<xe:dynamicViewPanel rows="50" id="dynamicViewPanel1"
width="100%" partialRefresh="true">
<xe:this.data>
<xp:dominoView var="view">
<xp:this.viewName>
<![CDATA[#{javascript:if(getComponent
('OmitCancelled').isChecked()){
viewName = "ContractsFlatByYear"
}else {
viewName = "ContractsFlatByYearandCancelled"
}}]]>
</xp:this.viewName>
<xp:this.search><![CDATA[#{javascript:return param.search;}]]>
</xp:this.search>
</xp:dominoView>
</xe:this.data>
</xe:dynamicViewPanel>
</xp:panel>
</xp:panel>
</xc:OneUILayout>
</xp:view>
这是自动单击复选框 onchange 事件上的按钮的示例:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:checkBox
text="check it"
id="checkBox1"
value="#{viewScope.test}">
<xp:eventHandler
event="onchange"
submit="false">
<xp:this.script><![CDATA[
document.getElementById('#{id:button1}').click()
]]></xp:this.script>
</xp:eventHandler>
</xp:checkBox>
<br />
<xp:button
value="Label"
id="button1">
<xp:eventHandler
event="onclick"
submit="false">
<xp:this.script><![CDATA[alert("hi")]]></xp:this.script>
</xp:eventHandler></xp:button>
</xp:view>