f:ajax在完成时不更新t:dataTable

时间:2012-09-19 03:58:10

标签: ajax jsf facelets myfaces tomahawk

我有一个JSF搜索命令按钮和一个显示搜索结果的tomahawk dataTable。单击命令按钮时,dataTable应输出搜索结果。无论如何,因为我使用JSF Ajax,所以dataTable没有显示。我只是想知道JSF Ajax是否会导致问题?

以下是导致表现在呈现的有问题的代码:

<h:commandButton id="search" value="#{msg.Label_Search}" action="#{theBean.doSearch}">
  <f:ajax render="searchStatus" execute="@form" />
</h:commandButton>
<h:outputText id="searchStatus" value="Loading data now..." rendered="#{theBean.searchingNow}" />

<h:panelGroup id="searchResultTable">
  <t:dataTable ... />
</h:panelGroup>

*注意这一点。如果删除了ajax代码。它工作正常。

1 个答案:

答案 0 :(得分:1)

您只是在ajax请求完成时更新searchStatus,而不是searchResultTable。因此,最终用户确实永远不会在searchResultTable的HTML表示中看到视觉上的变化。

相应地修正<f:ajax render>,以便searchResultTable也真正更新:

<f:ajax render="searchStatus searchResultTable" execute="@form" />