客户端使用richfaces自动完成

时间:2015-05-21 11:40:50

标签: html autocomplete richfaces

我有一个客户表,我正在尝试使用自动填充功能进行搜索。问题是即使只有大约3000个客户,自动完成搜索建议框大约需要2-3秒才能显示。 我考虑创建一个包含所有客户的var,这些客户将在页面加载时创建,当有人搜索客户时,搜索将仅在客户端进行。 我不知道如何在RichFaces中做到这一点。请帮忙。

到目前为止(从服务器搜索速度慢) - customerSuggestBox.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:a="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:f="http://java.sun.com/jsf/core"    
      xmlns:c="http://java.sun.com/jstl/core"      
      xmlns:s="http://jboss.com/products/seam/taglib">

<ui:composition>

    <ui:define name="forItem">customerText</ui:define>
<rich:suggestionbox for="${forItem}" tokens=",[" 
                suggestionAction="#{customerUtilAction.getCustomersByName}" var="cus"
                selfRendered="true"
                ignoreDupResponses="true"
                fetchValue="#{cus.businessUnit.name}" 
                first="0"
                minChars="2"
                shadowOpacity="5"
                border="1" width="400"
                height="250" 
                onselect="setCaretToEnd(event);"
                reRender="#{reRender}"
                shadowDepth="1"
                cellpadding="5" cellspacing="1"             nothingLabel="No customers found" columnClasses="center">

                 <h:column>

                <h:outputText value="#{cus.businessUnit.name}" />                                
                 </h:column>
                   <h:column>

                    <h:outputText value="#{messages[cus.businessRelationship.name()]}" />             
                 </h:column>
                  <ui:insert name="reRender"></ui:insert>               

                </rich:suggestionbox>

</ui:composition>
</html>

忘了说: 另一个xhtml包含这个并发送参数“forItem”

                                            <ui:include src="customerSuggestBox.xhtml">

                                            <ui:param 
                                                name="forItem"
                                                value="customerText" />
                                        </ui:include>

0 个答案:

没有答案