如何基于p:selectOneRadio创建列表

时间:2017-06-26 20:17:38

标签: java jsf primefaces

我有一个带有以下selectOneRadio定义的JSF页面:

<p:outputPanel id="customPanel" style="margin-bottom:10px">
   <p:selectOneRadio id="customRadio" layout="custom"  required="true" >
        <f:selectItem itemLabel="Número de Documento" itemValue="0" />
        <f:selectItem itemLabel="Nombre(s)" itemValue="1" />                     
        <f:selectItem itemLabel="Estado" itemValue="2" />   
   </p:selectOneRadio>

   <h:panelGrid columns="3" cellpadding="5">
        <p:radioButton for="customRadio" itemIndex="0" />
              <h:outputLabel for="txtNroDocumento" value="Número de Documento" />
              <p:inputText id="txtNroDocumento" value="#{empleadoMb.empleado.nroDocumento}"/>

              <p:radioButton id="txtNombre" for="customRadio" itemIndex="1" />
              <h:outputLabel for="txtNombre" value="Nombre(s)" />
              <p:inputText />

              <p:radioButton id="txtEstado" for="customRadio" itemIndex="2" />
              <h:outputLabel for="txtEstado" value="Estado" />
              <h:selectOneMenu value="#{empleadoMb.busqueda}">
                 <f:selectItem itemLabel="Seleccionar" itemValue="-1"/>
                 <f:selectItems value="#{empleadoMb.listaEstado}" var="st" itemValue="#{st.idParametro}" itemLabel="#{st.dato}"/>                                
              </h:selectOneMenu>
   </h:panelGrid>
</p:outputPanel>

控制器是ManagedBean。我需要知道的是,当我选择一个单选按钮时,如何根据它的身份证,姓名或状态创建员工列表。 我一直在我的支持bean即兴创作,但它不起作用。

1 个答案:

答案 0 :(得分:0)

首先,你的selectOneRadio需要一个值和ajax,你的selectOneMenu需要一个id:

<p:selectOneRadio "#{empleadoMb.radioValue}" id="customRadio" layout="custom"  required="true" >
     <f:selectItem itemLabel="Número de Documento" itemValue="0" />
     <f:selectItem itemLabel="Nombre(s)" itemValue="1" />                     
     <f:selectItem itemLabel="Estado" itemValue="2" />  
     <p:ajax listener="#{empleadoMb.radioValueChanged()}" update="selectMenu" />
</p:selectOneRadio>

<h:selectOneMenu id="selectMenu" value="#{empleadoMb.busqueda}">
             <f:selectItem itemLabel="Seleccionar" itemValue="-1"/>
             <f:selectItems value="#{empleadoMb.listaEstado}" var="st" itemValue="#{st.idParametro}" itemLabel="#{st.dato}"/>                                
          </h:selectOneMenu>

在你的bean中,你可以在监听器中处理你的列表:

private int radioValue;

public void radioValueChanged(){
// your current value is in the variable radioValue now, you can change your list depending on the value here, the update in the p:ajax will refresh the selectOneMenu after that.
}

//getter + setter for radioValue