我剛剛使用jsf + richfaces實現了一個粗糙的功能,並且遇到了這種情況,所以把它放到開放論壇中尋求一些答案。如果表格沒有呈現,reRender的表現如何
我有一個文本字段和豐富的:dataTable裏面的窗體。當textField中的值發生更改時,將填充表數據,並且應該使用最新數據重新對錶進行重新修訂。
現在有問題了:如果我在dataTable中渲染條件說如果值列表非空/非空渲染此表會怎麼樣?因此,第一次出現屏幕時,列表爲空/空,因此不會呈現表格,因爲當我修改textField時,會填充值並且表格上的reRender被觸發,但是整個表格不存在。
有沒有辦法解決這個問題?如果我重新載入頁面,是絕對錶出現:)
下面是該示例代碼:
<h:form id="userSearchForm" prependId="false">
<h:inputText value="#{ldapSearch.searchString}">
<a4j:support event="onkeyup" ignoreDupResponses="true" ajaxSingle="true" reRender="usersTable"
requestDelay="50" actionListener="#{ldapSearch.searchUser}"/>
</h:inputText>
<rich:dataTable id="usersTable"
rendered="#{not empty ldapSearch.users}"
value="#{ldapSearch.users}" var="user">
<rich:column sortable="false" label="Name">
<f:facet name="header">
<h:outputText value="Name"/>
</f:facet>
<h:outputText title="#{user.displayName}" value="#{user.displayName}"/>
</rich:column>
</rich:dataTable>
</h:form>
相關:http://stackoverflow.com/questions/9010734/why-do-i-need-to-nest-a-component-with-rendered-some-in-another-component-w – BalusC 2012-03-01 19:25:16