jquery - 根据枚举显示 selectOneMenu 项目背景颜色
问题描述
我已经看到了这个答案,但我不确定如何在 p:selectOneMenu 中显示项目,背景颜色由枚举值支持。
在下拉列表中,我想从枚举中获取项目,每个项目都有不同的颜色。
我正在使用 PrimeFaces 6.2,所以我不确定如何使用建议BalusC 来覆盖 SelectOneMenuRenderer - 使用自定义渲染器。
这是我到目前为止所尝试的。
索引.xhtml
<h:body>
<h:form>
<h:panelGrid id="createPanelGrid" columns="2">
<p:outputLabel value="Color options:" />
<p:selectOneMenu value="#{colorBean.selectedColor}" var="sc">
<f:selectItem itemLabel="Select a color" itemValue="" />
<f:selectItems value="#{colorBean.colorList}"
var="color"
itemLabel="#{color}"
itemValue="#{color}" />
<p:column>
<div style="background-color: #{color};">
</div>
</p:column>
<p:column>#{sc}</p:column>
</p:selectOneMenu>
</h:panelGrid>
</h:form>
</h:body>
ColorBean.java
import java.io.Serializable;
import javax.inject.Named;
import javax.faces.view.ViewScoped;
@Named("colorBean")
@ViewScoped
public class ColorBean implements Serializable {
private String selectedColor = "White";
public ColorBean() {
}
public ColorsEnum[] getColorList() {
return ColorsEnum.values();
}
public String getSelectedColor() {
return selectedColor;
}
public void setSelectedColor(String selectedColor) {
this.selectedColor = selectedColor;
}
}
颜色枚举.java
import java.util.ArrayList;
import java.util.List;
public enum ColorsEnum {
WHITE("White"),
RED("Red"),
ORANGE("Orange"),
GREEN("Green"),
BLUE("Blue");
private final String label;
private ColorsEnum(String label) {
this.label = label;
}
public String getLabel() {
return this.label;
}
public static final List<String> colorList() {
List<String> colors = new ArrayList<>();
colors.add(ColorsEnum.WHITE.label);
colors.add(ColorsEnum.RED.label);
colors.add(ColorsEnum.ORANGE.label);
colors.add(ColorsEnum.GREEN.label);
colors.add(ColorsEnum.BLUE.label);
return colors;
}
}
解决方案
推荐阅读
- r - 使用 reorder_within 后将轴标签中的项目加粗
- r - R:错误:在 dplyr 中使用 unnest 时长度不兼容
- angular - 在 Angular 哈希之前获取查询参数
- aws-secrets-manager - JMESPath 提取值匹配的键
- node.js - 使用 node.js 和 nginx 从域中删除 /public 的正确方法是什么?
- php - 使用 YouTube API 的 foreach 循环的 PHP 问题
- rust - 为什么在可变引用上进行模式匹配时不需要`ref mut`?
- hive - 在 HiveQL 中将序列号转换为字母
- c# - 应用程序 C# 图像质量
- octave - 为什么 Octave 会在我的文件中插入这个奇怪的字符?