我在使用itemtip選項時使用primefaces自動完成組件, 得到建議後我選擇了一個值作爲示例姓, 但我想在文本框中顯示玩家的姓和名,通過這種方式。自動完成在某些情況下不起作用
itemLabel="#{p.lastName} #{p.firstName} "
與這兩個有一些空間。
<p:autoComplete id="watermark" value="#{backingBean.object}"
size="40" completeMethod="#{backingBean.completeholder}"
var="p"
itemLabel="#{p.lastName} #{p.firstName} " itemValue="#{p}" converter="player">
<f:facet name="itemtip">
<h:panelGrid columns="2" styleClass="cellsp-panel">
<f:facet name="header">
<p:graphicImage value="#{p.imagePath}" width="60"
height="60" />
</f:facet>
<h:outputText value="LastName " style="font-weight:bold" />
<h:outputText id="ln" value="#{p.lastName}" />
<h:outputText value="FirstName " style="font-weight:bold" />
<h:outputText id="fn" value="#{p.firstName}" />
</h:panelGrid>
</f:facet>
<p:ajax event="itemSelect" update="e,c">
</p:ajax>
</p:autoComplete>
所以選擇一個建議後,它會完美地顯示玩家的姓氏和名字。 但是創建了一個問題 - 它會在自動完成文本框中創建一個空間,所以我需要使用 退格刪除此空間,以便我可以搜索以獲取建議。 我該如何克服這個問題?
- 我也是用的自動完成水印,當我使用單itemLabel像 itemLabel =「#{} p.lastName否則就無法在自動填充顯示水印。
3只適用。此外,當我使用無區分大小寫的輸入,以便用戶可以搜索時不區分大小寫, 一旦我得到任何建議,並仍然嘗試鍵入一些keyworks進一步過濾, 建議消失,它的作品,如果我去大小寫敏感默認方式。
用戶可以輸入玩家的姓氏或名字,但他仍然需要得到建議,我應該在下面的方法中做些什麼修改? 我已存儲的姓氏與第一個字母爲資本,所以我以這種方式使用toUpperCase()
公開名單completePlayer(查詢字符串){
清單建議=新的ArrayList();for(Player p : players) { if(p.getlastName().startsWith(query.toUpperCase())) suggestions.add(p); } return suggestions; }
我怎樣才能從這個問題解決?
我已經刪除了itemlabel之間的空間,現在我已經用這種方法嘗試過了。 itemLabel =「#{p.lastName}#{p.firstName}」itemValue =「#{p}」converter =「player」> 但它仍然在自動完成文本框中創建空間,因此我們需要使用退格刪除這個空間。這個空間現在是由於#{p.lastName}和#{p.firstName}之間有空間 「。實際上,我需要在選擇建議後姓氏 和名字之間的空格 因此,我們仍然可以如何刪除這個步驟/? – Java 2012-07-16 13:53:32
噢,我想我明白你的問題是什麼,因爲當頁面渲染時,姓氏和名字是空白的,它只會在該字段中放置空間,我能想到的最簡單的解決方案是添加FullName getters和setter到你的支持bean,並在那裏進行名稱聚合而不是在前端,然後你將能夠控制何時/如果空間被添加。 – SteveS 2012-07-16 14:24:18