Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 单击命令按钮时,如何在PrimeFaces lightbox中打开页面?_Jsf_Primefaces_Jsf 2.2 - Fatal编程技术网

Jsf 单击命令按钮时,如何在PrimeFaces lightbox中打开页面?

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

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