Jsf 单击命令按钮时,如何在PrimeFaces lightbox中打开页面?
PrimeFaces showcase上的示例演示了Jsf 单击命令按钮时,如何在PrimeFaces lightbox中打开页面?,jsf,primefaces,jsf-2.2,Jsf,Primefaces,Jsf 2.2,PrimeFaces showcase上的示例演示了(iFrame)的用法。单击时,将打开一个页面 当单击时,我也想要相同的。按下时,应在中打开页面 我有以下几点 <p:lightBox iframe="true" height="90%" width="800px" widgetVar="lightBoxWidget"> <h:outputLink value="page.jsf" style="width: 93%; text-align: left;text-al
(iFrame)的用法。单击
时,将打开一个页面
当单击
时,我也想要相同的。按下
时,应在
中打开页面
我有以下几点
<p:lightBox iframe="true" height="90%" width="800px" widgetVar="lightBoxWidget">
<h:outputLink value="page.jsf" style="width: 93%; text-align: left;text-align: left; height: 22px;padding: 6px 0px 0px 12px;" styleClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" onmouseover="$(this).addClass('ui-state-hover');" onmouseout="$(this).removeClass('ui-state-hover');">
<h:outputText value="Text"/>
<f:param name="id" value="#{bean.id}"/>
</h:outputLink>
</p:lightBox>
如何用
替换
?这里使用的样式只是使链接看起来像按钮
实际上,我想在打开
之前更新
,以便将所选行设置为关联的托管bean。要做到这一点,一个
非常适合,而不是
这似乎没有得到官方的支持。所以你需要一个技巧
根据中的PrimeFaces.widget.LightBox
定义,LightBox将第一个
元素的href
用作
的src
setupIframe: function () {
// ...
this.links.click(function (b) {
if (!a.iframeLoaded) {
// ...
a.iframe.on("load", function () {
// ...
}).attr("src", a.links.eq(0).attr("href")) // <-- Here.
确保
没有覆盖
本身,否则它可能会失败。一个快速的方法是:隐藏outputLink,单击或完成commandButton单击链接f:param
,因此调用page.jsf时缺少ID参数。将
标记替换为
并将f:param
放入内部(而不是p:commandButton
)
<p:lightBox iframe="true" height="90%" width="800px" widgetVar="lightBoxWidget">
<h:outputLink value="page.jsf" style="display:none;">
<f:param name="id" value="#{bean.id}"/>
</h:outputLink>
<p:commandButton value="Text" update="..." />
</p:lightBox>