我的基本问题是"是否存在未最大化对话的事件",我知道我可以注册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。
假设在最新版本的问题仍然存在,我需要实施一些解决方法,但无法:(
答案 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标记添加侦听器,并根据需要更新部分请求的过程值
致谢