1
我試圖做一個自定義的自動填充框,但我有一些麻煩。現在我有一個呼籲的keydown此功能jsf.ajax.request沒有完全工作
function pingAutoComplete(event)
{
console.log("pingAutoComlete Called");
window.clearTimeout(window.keyTimeout);
//Wait 2 seconds before we attempt to pingAutoComplete incase user has not finished typing
window.keyTimeout = setTimeout(function() {
jsf.ajax.request(event, "keydown", {execute:'searchTerm',render:'autoCompletePanel'})
autoCompleteLayoutPanel.show();
return false;
}, 2000);
return false;
}
自動完成面板包含了一堆選擇看起來像這樣
<h:selectOneListbox id="vehicleResult" title="Vehicles"
value="#{searchBean.searchTerm}"
converter="entityConverter"
required="false"
rendered="#{!searchBean.filterAutoComplete().isEmpty()}">
<f:selectItems value="#{searchBean.filterAutoComplete()}"
var="searchItem" itemValue="#{searchItem}"
itemLabel="#{searchItem.displayString}"
itemLabelEscaped="true" />
</h:selectOneListbox>
的現在時的JavaScript調用它似乎被擊中的輸入searchBean.filterAutoComplete()在後端,但它實際上並沒有更新gui中的選擇列表。有人知道爲什麼
對,我其實是這樣做的,但我試圖簡化它一點點的形式。它實際上是在後端,所以渲染似乎在找到自動完成面板。 – Landister
儘量不要過分簡化未來的代碼,但要發佈真實的工作代碼。回到你的問題,具有客戶端ID'form:autoCompletePanel'的JSF組件本身**不**具有'rendered'屬性,對嗎? – BalusC
對不起,我走了這麼久,見了會後見面。無論如何,我最終用一種名爲
的primefaces comp來使它工作。 – Landister