两个下拉菜单 Ajax 在 primeface 中刷新

two drop-down menus ajax refresh in primefaces

本文关键字:primeface 刷新 Ajax 下拉菜单 两个      更新时间:2023-09-26

我有一个复选框,它呈现 2 个下拉 SelectOne 菜单,第一个 SelectOne 菜单中的项目是静态的,但第二个 SelectOne 菜单应该根据第一个菜单中的选择更新项目。如何在素数中执行此操作?

例如,国家和城镇,当我在第一个菜单中选择英国时,我想在第二个菜单中看到仅来自英国的城镇。

    <h:selectBooleanCheckbox id="checkboxId" value="#{myBean.checkBoxSelected}" >
        <p:ajax event="CheckBoxEvent" update="panelId" />
    </h:selectBooleanCheckbox>
    <h:panelGrid id="panelId" style="border:solid 1px black;" >
        <h:outputText value="(country) First drop-down: " />  
            <p:selectOneMenu value="#{myBean.number}">  
                <f:selectItem itemLabel="Select One" itemValue="" />  
                <f:selectItem itemLabel="UK" itemValue="1" />  
                <f:selectItem itemLabel="SUA" itemValue="2" />  
                <f:selectItem itemLabel="Italy" itemValue="3" />  
            </p:selectOneMenu> 
        <h:outputText value="(region) Second drop-down: " />  
            <p:selectOneMenu value="#{myBean.number}">  
                <f:selectItem itemLabel="Select One" itemValue="" />  
                <f:selectItem itemLabel="country region 1" itemValue="1" />  
                <f:selectItem itemLabel="country region 2" itemValue="2" />  
                <f:selectItem itemLabel="country region 3" itemValue="3" />  
            </p:selectOneMenu>
    </h:panelGrid>

我的豆子

private boolean checkBoxSelected=false;
public void CheckBoxEvent(ValueChangeEvent vcEvent){
    checkBoxSelected = Boolean.valueOf(vcEvent.getNewValue().toString()).booleanValue();        
}

试试Primeface的Ajax事件:

<h:outputText value="(country) First drop-down: " />  
    <p:selectOneMenu value="#{myBean.number}">  
        <f:selectItem itemLabel="UK" itemValue="1" />  
        <f:selectItem itemLabel="SUA" itemValue="2" />  
        <f:selectItem itemLabel="Italy" itemValue="3" />  
        <p:ajax update="dropdown2" listener="#{myBean.handleDropDownChange}" />
    </p:selectOneMenu> 
<h:outputText value="(region) Second drop-down: " />  
    <p:selectOneMenu value="#{myBean.number}" id="dropdown2">  
        <f:selectItems value="#{myBean.regions}" />  
    </p:selectOneMenu>

我的豆子

private List<String> regions;
private int number;
public void handleDropDownChange(){
 //based on the number provided, change "regions" attribute.
}