有谁知道如何使 ap: 对话框与最大化和滚动一起使用?
如果窗口随着滚动而最大化,它会被窃听并且滚动条消失。
我正在使用来自 primefaces 的 p:dialog。
有谁知道如何使 ap: 对话框与最大化和滚动一起使用?
如果窗口随着滚动而最大化,它会被窃听并且滚动条消失。
我正在使用来自 primefaces 的 p:dialog。
遇到同样的问题,我试图开发一种解决方法。这现在为我修复了缺少的垂直滚动条:
定义以下函数作为 PF 问题 # 4879的解决方法:
function fixPFDialogToggleMaximize(dlg){
if(undefined == dlg.doToggleMaximize) {
dlg.doToggleMaximize = dlg.toggleMaximize;
dlg.toggleMaximize = function() {
this.doToggleMaximize();
var marginsDiff = this.content.outerHeight() - this.content.height();
var newHeight = this.jq.innerHeight() - this.titlebar.outerHeight() - marginsDiff;
this.content.height(newHeight);
};
}
像这样声明要修复的对话框:
<p:dialog widgetVar="myDialog" maximizable="true" ...>
...
</p:dialog>
<script type="text/javascript">
$(document).ready(
function(){fixPFDialogToggleMaximize(myDialog);}
);
</script>
好吧,我不得不稍微修改你的答案,让它对我有用,我只想分享我的发现,希望能帮助别人。
我并不是想窃取您的答案的功劳,因为我真的不值得或不想要它的功劳,我只想分享我的发现...:)
它是这样的:
My Dialog 使用 onShow 属性调用您的函数并将对话框小部件 var 名称传递给您的函数:
<p:dialog widgetVar="charts" width="860" height="540" header="chart}" maximizable="true" minimizable="true" showEffect="fade" onShow="fixPFDialogToggleMaximize('charts')">
<ui:include src="/pages/charts.xhtml"/>
</p:dialog>
然后您的函数使用 PF(widgetVar):
function fixPFDialogToggleMaximize(dlg) {
if (undefined == PF(dlg).doToggleMaximize) {
PF(dlg).doToggleMaximize = PF(dlg).toggleMaximize;
PF(dlg).toggleMaximize = function () {
this.doToggleMaximize();
var marginsDiff = this.content.outerHeight() - this.content.height();
var newHeight = this.jq.innerHeight() - this.titlebar.outerHeight() - marginsDiff;
this.content.height(newHeight);
};
}
}
非常感谢您提供答案,因为它帮助我解决了我在使用 PF 5.2 社区版时遇到的同样问题。
最好的祝福,
乔