使用的dataTable Primefaces
-
27-09-2019 - |
题
我使用primefaces的数据表对象以显示一些数据,我有一些问题,实现的内容: 我第一个表显示,只有1列,我想展示充满根据在第一个选择什么样的用户数据的另一个表。
有关的是,当用户选择在所述第一表中的行,我填补我TaskController的currentCorbeilleId记录并尝试更新的形式“tasksList”。这是有道理的,当我写的,但现在它不工作...当我点击第一个表中的行,什么都不会发生......
我使用的dataTable组件的正确方法?我应该怎么做更使它的作品? 谢谢您的解答!
<f:view>
<h:form id="mainForm">
<p:dataTable id="corbeillesList"
value="#{IdentityController.groups}"
var="corbeillesList"
rendered="#{not empty IdentityController.groups}"
selectionMode="single"
selection="#{TaskController.currentCorbeilleId}"
update="tasksList">
<p:column>
<f:facet name="header">
<h:outputText value="Name" />
</f:facet>
<h:commandLink value="#{corbeillesList.name}">
</h:commandLink>
</p:column>
</p:dataTable>
<p:dataTable id="tasksList"
value="#{TaskController.tasks}"
var="task"
rendered="#{not empty TaskController.tasks}"
selectionMode="single">
<p:column>
<f:facet name="header">
<h:outputText value="Date" />
</f:facet>
<h:outputText value="#{task.duedate}" rendered="#{task.duedate != null}">
<f:convertDateTime pattern="dd/MM/yyyy" type="date" dateStyle="short" />
</h:outputText>
<h:outputText value="Date non definit" rendered="#{task.duedate == null}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Name" />
</f:facet>
<h:outputText value="#{task.name}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Description" />
</f:facet>
<h:outputText value="#{task.description}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Verouillee" />
</f:facet>
<h:outputText value="oui" rendered="#{task.assignee != null}" />
<h:outputText value="non" rendered="#{task.assignee == null}" />
</p:column>
</p:dataTable>
</h:form>
</f:view>
解决方案
在数据表第二尚未呈现到客户端。因此,它是无法到达AJAX update
。把它在例如h:panelGroup
代替它总是呈现到客户端。
<h:panelGroup id="tasksList">
<h:dataTable rendered="#{not empty TaskController.tasks}" ... >
...
</h:dataTable>
</h:panelGroup>
不隶属于 StackOverflow