p:对话框未显示更新的值

时间:2016-07-31 09:14:38

标签: primefaces datatable dialog xhtml

我正在使用primefaces开发应用程序。 我的问题是我有P:布局有北,南和中心布局,中心布局有动态包含xhtml页面,支持bean的pageRoot值包含xhtml页面名称。布局包含在“h:form”

<p:layoutUnit position="center">
  <p:panel id="centreContent" style="border: none; margin-top: -15px; margin-left: -20px;">
    <ui:include src="#{menu.pageRoot}"/>
  </p:panel>
</p:layoutUnit>

在某些时候,pageRoot属性包含一个具有dataList的页面,以显示commandlink的多个链接,如下所示

<p:panel id="topPnlCourseData" header="Course Data" toggleable="false" style="font-size: 12px; height: 250px;">
  <p:dataList id="topPnlCourseDataList" value="#{studentStudyMaterial.mainCourseList}"
        var="courseList" type="unordered" itemType="none" paginator="true" rows="10" styleClass="paginated">
    <p:commandLink id="topPnlCourseDataListCmdLink" process="@this topPnlCourseDataList"
          update="topPnlCourseDataListDialogPnl" oncomplete="PF('topPnlCourseDataListDialogPnl').show()"
          title="View Detail">
      <f:setPropertyActionListener id="topPnlCourseDataListCmdLinkListener" value="#{courseList}"
            target="#{studentStudyMaterial.mainCourse}" />
      <h:outputText value="#{courseList.mainCourseAbbriviation}"/>
    </p:commandLink>
    <h:outputText value="#{courseList.mainCourseAbbriviationDetail}" style="display:inline-block"/>
    <p:dialog id="topPnlCourseDataListDialogPnl" header="Course Info" widgetVar="topPnlCourseDataListDialogPnl"
          modal="true" showEffect="blind" hideEffect="explode" resizable="false" dynamic="true">
      <p:panelGrid  columns="2" rendered="#{not empty studentStudyMaterial.mainCourse}" columnClasses="label,value">
        <h:outputText value="Id:"/>
        <h:outputText value="#{studentStudyMaterial.mainCourse.mainCourseAbbriviation}" />
        <h:outputText value="Year" />
        <h:outputText value="#{studentStudyMaterial.mainCourse.mainCourseAbbriviationDetail}" />
        <h:outputText value="Color:" />
        <h:outputText value="#{studentStudyMaterial.mainCourseDetail.mainCourseLevelAbbriviationDetail}"/>
      </p:panelGrid>
    </p:dialog>
  </p:dataList>
</p:panel>

现在f:setPropertyActionListener正在设置支持bean中的选定值,我在Backing Bean本身的调用期间设置了另一个属性以及代表所选属性的setter中的设置,即主菜和详细课程是List类型的主要课程的子集。设置主要课程值,并在辅助bean中设置详细课程值。单击在xhtml页面上呈现的链接时,会显示对话框,但在显示主要值时,不会显示所选链接子集中的值。

任何想法/建议我做错了什么?

1 个答案:

答案 0 :(得分:-1)

在对话框中的panelgrid之前添加p:outputPanel并更新值p:outPanel在呈现对话框时显示