![](/img/trans.png)
[英]Filling columns with the right data in subTable doesn't work (JSF, Primefaces)
[英]JSF (PrimeFaces) page doesn't work with single form
我正在使用PrimeFaces開發一個簡單的頁面,其中列出了有關某些項目的信息。 我想添加一個按鈕,以打開一個包含詳細信息的對話框。 代碼很簡單。 但是它不起作用:
<h:form id="projectForm">
<p:dataTable id="projectDataTable" var="project" value="#{projectMB.projects}" >
<p:column sortBy="name" headerText="Name">
<h:outputText value="#{project.name}" />
</p:column>
<p:column sortBy="status" headerText="Status">
<h:outputText value="#{project.status}" />
<h:outputText value=" (#{project.progress}%)" />
</p:column>
<p:column style="width:4%">
<p:commandButton update=":projectForm:display" id="selectButton" oncomplete="PF('projectDialog').show()" icon="ui-icon-search" title="View">
<f:setPropertyActionListener value="#{project}" target="#{projectMB.selectedProject}" />
</p:commandButton>
</p:column>
</p:dataTable>
<center>
<p:commandButton id="refreshProjectsButton" actionListener="#{projectMB.refreshProjectList}" icon="ui-icon-refresh" update="projectDataTable"/>
</center>
<p:dialog header="Project Detail" widgetVar="projectDialog" resizable="false" id="projectDlg" showEffect="fade" modal="true">
<h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">
<h:outputText value="Name:" />
<h:outputText value="#{projectMB.selectedProject.name}" style="font-weight:bold"/>
<h:outputText value="Description:" />
<h:outputText value="#{projectMB.selectedProject}" style="font-weight:bold"/>
</h:panelGrid>
</p:dialog>
</h:form>
我找到了解決方案,方法是添加包含dialog
額外表單:
<h:form id="projectForm">
<p:dataTable id="projectDataTable" var="project" value="#{projectMB.projects}" >
<p:column sortBy="name" headerText="Name">
<h:outputText value="#{project.name}" />
</p:column>
<p:column sortBy="status" headerText="Status">
<h:outputText value="#{project.status}" />
<h:outputText value=" (#{project.progress}%)" />
</p:column>
<p:column style="width:4%">
<p:commandButton update=":projectForm2:display" id="selectButton" oncomplete="PF('projectDialog').show()" icon="ui-icon-search" title="View">
<f:setPropertyActionListener value="#{project}" target="#{projectMB.selectedProject}" />
</p:commandButton>
</p:column>
</p:dataTable>
<center>
<p:commandButton id="refreshProjectsButton" actionListener="#{projectMB.refreshProjectList}" icon="ui-icon-refresh" update="projectDataTable"/>
</center>
</h:form>
<h:form id="projectForm2">
<p:dialog header="Project Detail" widgetVar="projectDialog" resizable="false" id="projectDlg" showEffect="fade" modal="true">
<h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">
<h:outputText value="Name:" />
<h:outputText value="#{projectMB.selectedProject.name}" style="font-weight:bold"/>
<h:outputText value="Description:" />
<h:outputText value="#{projectMB.selectedProject}" style="font-weight:bold"/>
</h:panelGrid>
</p:dialog>
</h:form>
我的問題是:為什么第一個代碼不起作用-從未調用刷新Java bean中列表的方法projectMB.refreshProjectList
。 我在javascript和Java中沒有任何錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.