Jsf p:SelectOne菜单下拉部分滚动且不保持在原位

Jsf p:SelectOne菜单下拉部分滚动且不保持在原位,jsf,primefaces,Jsf,Primefaces,我在GlassFish服务器3.1.2.2上使用PrimeFaces 5.0.5 我在一个中添加了一个selectonemenu,然后将其包含在另一个XHTML页面中 当我打开选择菜单并用鼠标滚轮滚动时,面板将随页面一起浮动 起初,我试图编辑CSS文件,因为我猜测这可能是位置问题,但事实并非如此 然后,我从showcase复制了源代码,滚动时面板仍然会分裂 普通HTML下拉列表和都很好,我不知道为什么它不能与一起使用 我可以找到一些提到这个问题的帖子,但它们与PrimeFaces的旧版本有关 这

我在GlassFish服务器3.1.2.2上使用PrimeFaces 5.0.5

我在一个
中添加了一个selectonemenu,然后将其包含在另一个XHTML页面中

当我打开选择菜单并用鼠标滚轮滚动时,面板将随页面一起浮动

起初,我试图编辑CSS文件,因为我猜测这可能是位置问题,但事实并非如此

然后,我从showcase复制了源代码,滚动时面板仍然会分裂

普通HTML下拉列表和
都很好,我不知道为什么它不能与
一起使用

我可以找到一些提到这个问题的帖子,但它们与PrimeFaces的旧版本有关

这个问题仍然存在还是在505年得到解决?如果是,我如何解决这个问题

任何反馈和评论都将不胜感激

非常感谢


...
...
...
问候,,
Rek

问题是,这些浮动div是用绝对定位创建的,当您有布局、对话框或打破页面流动的东西时,这些
p:selectOneMenu
“面板”即使您滚动布局或容器,也会保持在相同的绝对位置,因为默认情况下它们附着在主体上

因此,解决这个问题的一种方法是将它们连接到自身,这样绝对面板就会出现在页面流中的select旁边,而不会随着那些“内部滚动”移动:


您可以在selectOneMenu中使用panelStyle=“position:fixed;”我遇到了一个非常类似的问题,selectOneMenu元素被放置在表格单元格的一个对话框窗口中,下拉菜单在滚动时随父菜单移动。 两种解决方案
appendTo=“@this”
panelStyle=“position:fixed;”
都可以正常工作,但是将
p:selectOneMenu
元素作为数据表的一部分会使下拉菜单隐藏在它所在的元素下。
panelStyle=“position:fixed;”“
完全解决了这个问题,因为不管它在元素顶部滚动,它都会保持在该位置。

我从来没有注意过它,但同样的情况也发生在我身上,即使是在PF 5.1中。谢谢你的评论,Ganser先生。我想问你一个问题。您是否将SelectOne功能表放在对话框或灯箱中?看起来,这就是问题的触发方式。谢谢。在我的情况下,仅仅是布局就引发了问题,我只是将
p:layout
的属性
fullPage
更改为false,问题就解决了,也许我明天可以彻底测试一下,然后给你一个答案,你也有布局吗?不幸的是,不。我只使用h:panelGroup和div。我尝试了panelGrid,但它不起作用。很抱歉,我现在无法缩小问题范围,除了我所说的,它似乎在多种情况下都会发生,但我会让您不断更新。我个人对此有一个悬而未决的问题,需要最终解决:)使用appendTo=“@this”会导致问题,selectOneMenu溢出“visible”不起作用,因为滚动条是创建的。。。我怎样才能解决这个问题呢?我需要使用appendTo=“@this”将selectOneMenu保持在正确的位置,但如果下拉列表的高度高于对话框的高度,则溢出可见。另一个答案建议,您可以使用panelStyle=“position:fixed;”
<ui:fragment
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui">
<h:panelGroup
    id="cPanel"
    layout="block"
    styleClass="contentArea product">
    <div class="mainColumnContainer">
        <div class="mainColumn">
            ...
            <div id="try">
            <form>
                        ...
                <h:panelGroup>
                <h:form>
                <p:messages autoUpdate="true" />

                <h:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5">
                    <p:outputLabel for="console" value="Basic:" />
                    <p:selectOneMenu id="console" value="#{selectOneMenuView.console}">
                        <f:selectItem itemLabel="Select One" itemValue="" />
                        <f:selectItem itemLabel="Xbox One" itemValue="Xbox One" />
                        <f:selectItem itemLabel="PS4" itemValue="PS4" />
                        <f:selectItem itemLabel="Wii U" itemValue="Wii U" />
                    </p:selectOneMenu>

                    <p:outputLabel for="car" value="Grouping: " />
                    <p:selectOneMenu id="car" value="#{selectOneMenuView.car}">
                        <f:selectItem itemLabel="Select One" itemValue="" />
                        <f:selectItems value="#{selectOneMenuView.cars}" />
                    </p:selectOneMenu>

                    <p:outputLabel for="city" value="Editable: " />
                    <p:selectOneMenu id="city" value="#{selectOneMenuView.city}" effect="fold" editable="true">
                        <f:selectItem itemLabel="Select One" itemValue="" />
                        <f:selectItems value="#{selectOneMenuView.cities}" />
                    </p:selectOneMenu>

                </h:panelGrid>
            ...
<p:selectOneMenu id="console" value="#{selectOneMenuView.console}" appendTo="@this">
    <f:selectItem itemLabel="Select One" itemValue="" />
    <f:selectItem itemLabel="Xbox One" itemValue="Xbox One" />
    <f:selectItem itemLabel="PS4" itemValue="PS4" />
    <f:selectItem itemLabel="Wii U" itemValue="Wii U" />
</p:selectOneMenu>
panelStyle="position: fixed;"