我正在使用RichFaces並希望在我的網站上實施實時搜索。我有一個輸入字段和一個在我的支持bean中動態構建的div。實際上,方法bean.getResultsDiv()調用setResultsDiv()並考慮searchString創建MyFaces Div對象。不幸的是,如果我在輸入字段中鍵入一個字符,結果div的重新渲染髮生得太早,搜索字符串將不會更新。如何確保char的處理先發生,然後創建新的result-div的bean方法被觸發?提前致謝。在inputField上的RichFaces LiveSearch
<t:inputText id="mysearchString"
value="#{bean.searchString}"
onkeydown="jQuery('form_processSearchString').click();"
/>
<4j:commandButton id="processSearchString"
process="mysearchString"
reRender="results"
/>
<t:div id="results" binding="#{bean.resultsDiv}" />
UPDATE-1:我調試了,現在我可以看到bean.searchString已正確更新。不幸的是getResultsDiv()的getter方法在setSearchString(newStringToSeach)之前被調用。我如何確保處理先發生然後再處理。
另一個代碼段我與玩弄(相同的行爲,重新描繪-消氣呼叫setSearchString之前觸發()):
<t:inputText id="searchString"
value="#{beans.searchString}"
onkeydown="if (event.keyCode == 13) { return false; }">
<a4j:support event="onkeyup" requestDelay="200" ajaxSingle="true"
reRender="resultsDiv" eventsQueue="quicksearchqueue"
ignoreDupResponses="true"
process="searchString"
/>
</t:inputText>
感謝您的幫助!
UPDATE-2:我能夠發現相應綁定的getter沒有被觸發,因此div不會被更新。這似乎是問題!
<t:div id="results" binding="#{bean.resultsDiv}" />