Primefaces对话框事件为unmaximize?

时间:2015-07-03 14:50:07

标签: jquery ajax spring jsf primefaces

我的基本问题是"是否存在未最大化对话的事件",我知道我可以注册ajax以便最大化'事件但是从全屏模式恢复到正常大小后发生的事件呢?"

我现在面临的问题描述: "当对话框从全屏模式恢复到正常模式时,滚动消失。"

档案内容:

<p:dialog ... width="600" height="400" maximize="true">
   <p:panel style="overflow:auto;">
      <p:dataTable style="min-width:800px !important;">
           ....cols/data ~height~600px;
      </p:dataTable>
   </p:panel>
</p:dialog>

在.show()操作上,一切看起来都很好,在调整大小时动作滚动以正确的方式呈现。在UNmaximize行动(恢复到正常尺寸模式)后,一切都会崩溃。

Primefaces香港专业教育学院尝试和转载的问题是我的项目版本3.5.RC1和最新的5.2。

假设在最新版本的问题仍然存在,我需要实施一些解决方法,但无法:(

3 个答案:

答案 0 :(得分:0)

对话框的PrimeFaces文档指出,最小化最大化移动事件。

尝试使用

<p:ajax event="minimize" listener="#{bean.listener}" update="controls" />
在你的p:对话框中

答案 1 :(得分:0)

如何修复:

Primefaces版本3.5.23和4.0.7和5.0.0已经实现了解决方法,无法解析为unmaximize事件,因为只能在unmaximize上调用该事件。

解决方法涉及手动更改文件primefaces.js中的saveState javascript的saveState和restoreState。方法是保存和恢复对话框内容的宽度和高度。

最好的方法是将解决方案从更高版本的primefaces或精英版本移植到3.5。

答案 2 :(得分:0)

我不知道,也没有检查素数<6,但是从那时起,就不需要任何解决方法了。您可以使用如下所示的ajax事件:

<p:dialog widgetVar="myDialog"
    header="Dialog"
    onShow="updateClientSide()"
    modal="true" blockScroll="true" responsive="true"
    closable="true" closeOnEscape="true" maximizable="true"
    height="80vh" width="80vw" minHeight="300" minWidth="330">

    <p:ajax event="maximize" update="{id's to update}" onstart="updateClientSide()" process="@none"/>
    <p:ajax event="restoreMaximize" update="id's to update" onstart="updateClientSide()" process="@none"/>

    <div>
        content
    </div>
</p:dialog>

...

<script type="text/javascript">
    function updateClientSide() {
        your client side stuff
    };
</script>

请注意,给定的示例仅用于客户端回调,如果要在服务器端处理事务,则需要向p:ajax标记添加侦听器,并根据需要更新部分请求的过程值

致谢