PrimeFaces SelectOneMenu在ajax更新后没有更新值

时间:2016-04-30 08:12:01

标签: ajax jsf primefaces selectonemenu

我已经和PrimeFaces合作了不到24小时,所以也许我错过了那些显而易见的事情。

我有两个SelectOneMenu组件。第二个没有首先渲染。在第一个值中更改值时。侦听器从db检索数据,使用数据更新ManagedBean属性,并更改boolean属性以显示第二个。现在渲染了第二个菜单,但没有显示数据。

以下是摘录:

<h:form prependId="false" id="notaForm">
        <h:panelGrid>
            <p:selectOneMenu value="#{notaBean.idCurso}" 
                style="width:150px" >
                <f:selectItem itemLabel="Seleccione curso" itemValue="" noSelectionOption="true" />
                <f:selectItems value="#{notaBean.cursos}" var="c" itemLabel="#{c.nombre}" itemValue="#{c.idCurso}"/>
                <p:ajax event="change" listener="#{notaBean.onSelectCurso}" update="alumno" />
            </p:selectOneMenu>
        </h:panelGrid>

        <h:panelGrid id="alumno">
            <p:selectOneMenu value="#{notaBean.idAlumno}" var=""
                style="width:150px" rendered="#{notaBean.mostrarAlumnos}">
                <f:selectItem itemLabel="Seleccione alumno" itemValue="" noSelectionOption="true" />
                <f:selectItems value="#{notaBean.alumnos}" var="a" itemLabel="#{a.nombre}" itemValue="#{a.idAlumno}"/>
                <p:ajax event="change" listener="#{notaBean.onSelectAlumno}" update="nota" />
            </p:selectOneMenu>
        </h:panelGrid>

        <h:panelGrid id="nota">
            <p:outputLabel for="nota" value=""
                rendered="#{notaBean.mostrarNota}" />
            <p:inputText value="#{notaBean.nota}" label="nota"
                rendered="#{notaBean.mostrarNota}" />

            <h:commandButton action="#{notaBean.insertarNota()}" id="button"
                value="Guardar nota" rendered="#{notaBean.mostrarNota}"/>
        </h:panelGrid>

    </h:form>

notaBean.alumnos的大小为2(它从db中恢复了两个校友),当我在控制台中打印出属性时,属性nombre和idAlumno正确显示。

0 个答案:

没有答案