Primefaces DatePicker 不会在 window 旋转时更新其位置

Primefaces DatePicker does not update its position on window rotation

我们在项目中使用了一个 DatePicker 组件。 Primefes 版本 8.0.

DatePicker 弹出窗口的位置在输入字段的位置发生变化后(例如,在旋转平板电脑后)不会发生变化。问题是 fixed for the Сalendar 组件,但我们使用 DatePicker 是因为:

DatePicker is designed to replace the old p:calendar component.

你可以在official website上看到这个问题。

以下是部分截图:

更改屏幕尺寸后,弹窗位置没有更新:

有没有办法通过用 javascript 扩展 PrimeFaces.widget.Calendar 来解决这个问题?

感谢您的帮助。

您现在可以自行修复此问题,只需将此 Javascript 添加到您的页面或网站即可。

XHTML 示例:

<p:datePicker id="popup" widgetVar="dpPopup" value="#{calendarView.date2}" />

JavaScript 添加到您的页面:

$(window).on('resize.datepicker', function() {
    setTimeout(function () {
        for (item in PrimeFaces.widgets) {
            widget = PrimeFaces.widgets[item];
            if (widget instanceof PrimeFaces.widget.DatePicker) {
                    widget.jq.datePicker('alignPanel');
            }
        }
    }, 10);
});

报告的问题:https://github.com/primefaces/primefaces/issues/5984

已为 9.0 修复:https://github.com/primefaces/primefaces/pull/5985