本文概述
用于选择覆盖中显示的多个项目。我们可以使用<p:selectCheckboxMenu>组件创建它。它在叠加中显示选项。它提供了下表中列出的属性。
SelectCheckboxMenu属性
Attribute | 默认值 | 返回类型 | Description |
---|---|---|---|
id | null | String | 它是组件的唯一标识符。 |
rendered | true | Boolean | 它用于呈现指定组件。 |
binding | null | Object | 它绑定一个映射到后备bean中的服务器端UIComponent实例的表达式。 |
value | null | Object | 用于设置组件的值。 |
converter | null | Converter/String | 用于定义组件的转换器。 |
required | false | Boolean | 用于根据需要标记组件。 |
requiredMessage | null | String | 它用于设置在必填字段验证失败时显示的消息。 |
style | null | String | 用于设置组件的内联样式。 |
onShow | null | String | 它是显示覆盖图时执行的方法。 |
onHide | null | String | 这是在隐藏叠加层时执行的方法。 |
multiple | false | Boolean | 用于将选定的项目设置为多个标签。 |
Ajax行为事件
SelectCeckboxMenu除了常见的dom事件(例如change, selectCheckboxMenu)之外, 还提供Ajax事件。
Event | 侦听器参数 | Executed |
---|---|---|
toggleSelect | org.primefaces.event.ToggleSelectEvent | 切换时, 所有复选框都会更改。 |
例子
在下面的示例中, 我们正在实现<p:selectCheckboxMenu>组件。本示例包含以下文件。
JSF文件
// calendar.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>Checkbox Menu</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="menu" value="Select Cities: " />
<p:selectCheckboxMenu id="menu" value="#{checkboxMenu.selectedCities}" label="Cities"
filter="true" filterMatchMode="startsWith" panelStyle="width:250px">
<f:selectItems value="#{checkboxMenu.cities}" />
</p:selectCheckboxMenu>
</h:panelGrid>
</h:form>
</h:body>
</html>
ManagedBean
// CheckboxMenu.java
package com.srcmini;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class CheckboxMenu {
private String[] selectedCities;
private List<String> cities;
@PostConstruct
public void init() {
cities = new ArrayList<>();
cities.add("Greater Noida");
cities.add("New Delhi");
cities.add("Paris");
cities.add("Tokyo");
cities.add("Newyork");
cities.add("Moscow");
cities.add("Rome");
cities.add("California");
cities.add("Shanghai");
}
public String[] getSelectedCities() {
return selectedCities;
}
public void setSelectedCities(String[] selectedCities) {
this.selectedCities = selectedCities;
}
public List<String> getCities() {
return cities;
}
}
该JSF应用程序产生以下输出。
输出
我们可以看到它允许我们从菜单中选择多个项目。
评论前必须登录!
注册