我有一个JSF页面,使用richfaces和一些帮助按钮,如下所示:
<rich:componentControl for="panelHelp" event="oncomplete" operation="show" />
所谓的小组是:
<rich:modalPanel id="panelHelp" minHeight="250" minWidth="500"
keepVisualState="true" resizeable="true" moveable="true">
<f:facet name="header">
<h:outputText value="Help" />
</f:facet>
<f:facet name="controls">
<h:commandLink value="">
<h:graphicImage value="/close2.png" title="Close" />
<rich:componentControl for="panelHelp" event="onclick" operation="hide" />
</h:commandLink>
</f:facet>
<h:panelGrid columns="1" width="100%">
<h:outputText escape="false" id="txtHelp"
value="#{msgHelp}" style="width: 100%; height: 190px" />
</h:panelGrid>
</rich:modalPanel>
然而,每当我按下按钮关闭面板时,它会重新加载整个页面,而不是简单地隐藏面板。
我做错了什么,或者有更好的方法吗?
我正在使用richfaces版本3.3.3
答案 0 :(得分:1)
由于您使用了<h:commandLink/>
,它正在重新加载整个页面,这将触发整个JSF请求处理生命周期。要获得所需的结果,您不需要命令链接组件。你真正需要的只是:
<f:facet name="controls">
<h:graphicImage id="closeButton" value="/close2.png" title="Close" />
<rich:componentControl attachTo="closeButton" for="panelHelp" event="onclick" operation="hide" />
</f:facet>
我们在这里做的是点击图片时点击<rich:componentControl/>
;没有必要链接。我假设你正在使用Richfaces 3.X. (RF 4.X已弃用attachTo
属性)
答案 1 :(得分:1)
上面的答案适用于Richfaces 3.x,如果您使用的是Richfaces 4.x,那么给定的代码将有效。
<f:facet name="controls">
<h:graphicImage value="/close2.png" >
<rich:componentControl target="closeButton" operation="hide" event="click" />
</h:graphicImage>
</f:facet>
答案 2 :(得分:1)
使用a4j:commandLink而不是h:commandLink并提供a4j:support。这应该可以解决问题。
答案 3 :(得分:0)
将disableDefault="true"
属性添加到rich:componentControl
以禁用点击链接的默认行为。