【发布时间】:2016-07-31 09:14:37
【问题描述】:
我正在使用 primefaces 开发应用程序。 我的问题是我的 P:layout 具有北、南和中心布局,中心布局具有 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 中设置选定的值,我在该调用期间在支持 Bean 本身以及代表选定属性的设置器中设置另一个属性,即主课程和详细课程是子集List 类型的主菜。在 backing bean 中设置了主要课程值,并设置了详细课程值。单击 xhtml 页面上呈现的链接时,会呈现对话框,但不会出现所选链接子集中的值,尽管出现了 maincourse 值。
任何想法/建议我做错了什么?
【问题讨论】:
-
尝试将对话框放在数据列表之外。您现在为 datalist 中的每个“记录”生成一个具有相同 widgetId 的对话框(这是不行的)。提问时请创建minimal reproducible example。是例如
layout相关吗?如果不删除它。
标签: primefaces datatable dialog xhtml