Java自动完成'在primefaces上创建行后不能正常工作

时间:2017-07-21 07:47:54

标签: java primefaces

在我的应用程序中,我将java自动完成添加到searchitem。 这个项目很好用。但是在创建行之后它不起作用。 我将视频录制到youtube。

https://www.youtube.com/watch?v=0FM52YNsDZY

页面:

<p:autoComplete id="autocomplete" dropdown="true" value="#{126Controller.tesisAuto}" var="auto" 
                                        completeMethod="#{211Controller.complete}" forceSelection="true"
                                        itemLabel="#{auto.tesisAdi}" itemValue="#{auto}">
                            <f:facet name="itemtip">
                                <h:panelGrid columns="2" cellpadding="5">
                                    <h:outputText value="Tesis Adı: "/>
                                    <h:outputText value="#{auto.tesisAdi}"/>
                                    <h:outputText value="Şeflik Adı: "/>
                                    <h:outputText value="#{211Controller.getSeflik(auto.seflikKodu)}"/>
                                    <h:outputText value="Adres: "/>
                                    <h:outputText value="#{auto.adres}"/>
                                </h:panelGrid> 
                            </f:facet>
                            <p:ajax event="itemSelect" listener="#{126Controller.itemByTesisAuto()}" update=":126ListForm:display"/> 
                        </p:autoComplete>

完整方法:

public List<211> complete(String query) {
    return autoComplete(query);
}
public List<211> autoComplete(String auto){
    List<211> completed = new ArrayList<211>();

    for (211 m211: this.getFacade().getTesisByYetkiIsyeriKodu(yetkiSeflik)){
        if(m211.getTesisAdi().startsWith(auto.toUpperCase())){
            completed.add(m211);
        }
    }
    return completed;
}

创建方法:

public void create() {
    persist(PersistAction.CREATE, "Oluşturma");
    if (!JsfUtil.isValidationFailed()) {
        items = null;    // Invalidate list of items to trigger re-query.
    }
}

1 个答案:

答案 0 :(得分:0)

感谢上帝。 我解决了我添加了h:head并且工作了。 非常感谢你。

<p:panelGrid id="sef" columns="1" style="width: 100%">
                <h:head>
                <h:form>
                    <h:panelGrid columns="2" style="width: 100%">
                        <h:outputText value="Şeflik Seçiniz : " style="width: 20%" rendered="#{211Controller.yetkiliSeflikSayisi gt 1}"/>
                        <p:selectOneMenu id="seflik" value="#{211Controller.yetkiSeflik}" effect="fold" rendered="#{211Controller.yetkiliSeflikSayisi gt 1}" >
                                <f:selectItem itemLabel="Seçiniz" itemValue=""/>
                                <f:selectItems value="#{211Controller.list}"/>
                                <p:ajax update="autocomplete"/>
                        </p:selectOneMenu>
                        <h:outputText value="Tesis Seçiniz : " style="width: 20%"/>
                        <p:autoComplete id="autocomplete" dropdown="true" value="#{126Controller.tesisAuto}" var="auto" 
                                        completeMethod="#{211Controller.complete}" forceSelection="true"
                                        itemLabel="#{auto.tesisAdi}" itemValue="#{auto}">
                            <f:facet name="itemtip">
                                <h:panelGrid columns="2" cellpadding="5">
                                    <h:outputText value="Tesis Adı: "/>
                                    <h:outputText value="#{auto.tesisAdi}"/>
                                    <h:outputText value="Şeflik Adı: "/>
                                    <h:outputText value="#{211Controller.getSeflik(auto.seflikKodu)}"/>
                                    <h:outputText value="Adres: "/>
                                    <h:outputText value="#{auto.adres}"/>
                                </h:panelGrid> 
                            </f:facet>
                            <p:ajax event="itemSelect" listener="#{126Controller.itemByTesisAuto()}" update=":126ListForm:display :126ListForm:sef"/> 
                        </p:autoComplete>
                    </h:panelGrid>
                </h:form>
                </h:head>
            </p:panelGrid>