我正在尝试创建包含数据表记录的Dilogue框。我使用的是最新版本的primffaces实现。
以下是XHTML代码,
<h:form prependId="false" id ="dilogueForm" >
<p:dialog id="dialog" header="Car Detail" widgetVar="carDialog" resizable="false"
showEffect="fade" hideEffect="explode">
<h:panelGrid id="display" columns="2" cellpadding="4">
<h:outputText value="Project:" />
<h:outputText value="#{saveData.selectedProject.prjName}" />
<h:outputText value="Description:" />
<h:outputText value="#{saveData.selectedProject.prjDesc}" />
<h:outputText value="Client:" />
<h:outputText value="#{saveData.selectedProject.prjClientname}" />
<h:outputText value="Effort:" />
<h:outputText value="#{saveData.selectedProject.prjEffort}" />
<p:column headerText="Color">
<h:commandButton value ="Save" actionListener="#{saveData.selectProjectFromDialog(selectedProject)}" />
</p:column>
</h:panelGrid>
</p:dialog>
</h:form>
此处:
所选项目由以下数据表定义填充:
<p:dataTable id="ProjectDataTable" var="p" value="#{saveData.projectList}"
selection="#{saveData.selectedProject}" selectionMode="single" rowKey="#{p.prjId}">
在托管bean上,
public void selectProjectFromDialog(Project project) {
System.out.println("Project"+project.toString());
RequestContext.getCurrentInstance().closeDialog(project);
}
这里我得到的项目值为null。
你能帮忙吗?
<h:commandButton value ="Save" actionListener="#{saveData.selectProjectFromDialog(selectedProject)}" />
应该是
<h:commandButton value ="Save" actionListener="#{saveData.selectProjectFromDialog(saveData.selectedProject)}" />
试试这个:
<p:commandButton value ="Save" process="@this, display" partialSubmit="true" ajax="true" action="#{saveData.selectProjectFromDialog(saveData.selectedProject)}" />