我对p:selectOneMenu有一些问题。我的selectOneMenu将使用分组填充列表。如果列表太长,列表将向上显示,而不显示任何垂直滚动条。它应该向下显示垂直滚动条。
如果selectOneMenu使用普通列表填充而没有分组,则可以正常工作。如果列表太长,列表可以显示垂直滚动条。
<p:selectOneMenu id="abcd_combo_box_ctpy2" styleClass="selectOneMenu">
<f:selectItems value="#{pc_Abcd.carList2}" ></f:selectItems>
</p:selectOneMenu>
public List getCarList2() {
List cars;
SelectItemGroup g1 = new SelectItemGroup("German Cars");
g1.setSelectItems(new SelectItem[] {
new SelectItem("BMW", "BMW"),
new SelectItem("Mercedes", "Mercedes"),
new SelectItem("Volkswagen", "Volkswagen"),
new SelectItem("Item 1", "Item 1"),
new SelectItem("Item 2", "Item 2"),
new SelectItem("Item 3", "Item 3"),
new SelectItem("Item 4", "Item 4"),
new SelectItem("Item 5", "Item 5"),
new SelectItem("Item 6", "Item 6"),
new SelectItem("Item 7", "Item 7"),
new SelectItem("Item 8", "Item 8"),
new SelectItem("Item 9", "Item 9"),
new SelectItem("Item 10", "Item 10"),
});
SelectItemGroup g2 = new SelectItemGroup("American Cars");
g2.setSelectItems(new SelectItem[] {
new SelectItem("Chrysler", "Chrysler"),
new SelectItem("GM", "GM"),
new SelectItem("Ford", "Ford"),
new SelectItem("Item 21", "Item 21"),
new SelectItem("Item 22", "Item 22"),
new SelectItem("Item 23", "Item 23"),
new SelectItem("Item 24", "Item 24"),
new SelectItem("Item 25", "Item 25"),
new SelectItem("Item 26", "Item 26"),
new SelectItem("Item 27", "Item 27"),
new SelectItem("Item 28", "Item 28"),
});
cars = new ArrayList();
cars.add(g1);
cars.add(g2);
return cars;
}
答案 0 :(得分:4)
调整“ui-selectonemenu-items-wrapper”类的高度。
试试这个
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
>
<h:head>
<style>
.ui-selectonemenu-list,
.ui-selectonemenu-panel,
.ui-widget-content
{
height:50% !important
}
.ui-selectonemenu-items-wrapper
{
height:100% !important
}
</style>
</h:head>
<h:body>
<p:selectOneMenu id="abcd_combo_box_ctpy2" styleClass="selectOneMenu" >
<f:selectItems value="#{pc_Abcd.carList2}" ></f:selectItems>
</p:selectOneMenu>
</h:body>
</html>
答案 1 :(得分:3)
您可以在styleClass="selectOneMenuGrouped"
中使用selectOneMenu
,然后在css
中使用
.selectOneMenuGrouped.ui-selectonemenu-list, .ui-selectonemenu-panel
{
max-height:50% !important;
overflow: scroll;
}
.selectOneMenuGrouped .ui-selectonemenu-items-wrapper
{
height:100% !important;
overflow: scroll;
}
答案 2 :(得分:2)
我已经设法使用此代码(上面的一点modofocation)使用它:
<style type="text/css">
.ui-selectonemenu-list,
.ui-selectonemenu-panel
{
max-height:50% !important;
overflow: scroll;
}
.ui-selectonemenu-items-wrapper
{
height:100% !important;
overflow: scroll;
}
</style>
希望这有助于解决您的问题。
答案 3 :(得分:1)
以下内容确保如果您使用过滤器(以及分组),则搜索栏会保留在顶部,只有项目会滚动。
#include "magisterstudent.h"
#include "student.h"
#include "university.h"
MagisterStudent::MagisterStudent(QString name, University *parent) : Student(parent)
{}
Html
#include <QApplication>
#include "university.h"
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
new University(&a);
return a.exec();
}