【问题标题】:primefaces update panel from p:autoCompletep:autoComplete 中的 primefaces 更新面板
【发布时间】:2013-08-30 11:50:58
【问题描述】:

我有如下 p;autocomplete 标记,用于填充联系人列表

<h:form id="relationshipsForm">
//code
    <p:autoComplete id="contactAutoComplete"
                                rendered="#{relationshipController.relationshipsName=='Contact'}"
                                value="#{relationshipController.contactKeyWord}"
                                completeMethod="#{contactRelationshipController.completeContacts}"
                                var="contact" itemLabel="#{contact.fullName}"
                                itemValue="#{contact}" converter="#{contactConverter}"
                                forceSelection="true" size="35" scrollHeight="200"
                                panelStyle="width:10px;">
                                <p:ajax event="itemSelect" update="relationshipsForm,graphViewPanel" />
                            </p:autoComplete> 

在选择联系人时,它应该自动更新下面的标签视图

<p:outputPanel id="graphViewPanel">
                <h:inputHidden id="orgViewUnMappedJSonDataList"
                    value="${relationshipController.getOrgViewUnMappedJSonData()}" />
                <h:inputHidden id="orgViewMappedJSonDataList"
                    value="${relationshipController.getOrgViewMappedJSonData()}" />

    <p:tabView scrollable="true" id="tabView" dynamic="true" cache="true">
                    <p:tab id="orgViewTab" title="Org View">
                        <h:outputScript library="js" name="go.js" />
                        <h:outputScript library="js" name="gojs_org_view.js" />
                        <h:outputStylesheet library="css" name="gojs_org_view.css" />
                    </p:tab>
                </p:tabView>
    </p:outputPanel>
</h:form>

【问题讨论】:

    标签: java ajax jsf primefaces


    【解决方案1】:

    您使用 &lt;p:outputPanel id="graphView"&gt; 更改为 &lt;div id="graphView"&gt;

    事实上,&lt;p:outputPanel 在客户端渲染了一个div 标签。

    【讨论】:

    • 我将 div 更改为 并将 p:ajax 更改为 但面板仍然没有刷新@RongNK
    • @RanPaul 您尝试将rendered="#{relationshipController.relationshipsName=='Contact'}" 更改为rendered="true"
    【解决方案2】:

    将 tabview 的 id 添加到组件 id 列表中以更新自动填充中的 ajax。

    【讨论】:

    • 我将 div 更改为 并将 p:ajax 更改为 但面板仍然没有刷新@djmj
    • 输出面板也是NamingContainerh:form的子级吗?如果不是,您需要使用完全限定的 id-path。您的问题不包含此信息。
    • 是的,输出面板也是 NamingContainer h:form 的一个子项,我将其更改为 并且还在使用按钮 刷新面板但它没有被刷新
    【解决方案3】:

    为什么在选择值时更新自动完成功能?您应该更新您希望在其中显示您的信息的其他内容。 AsRongNK 说,使用带有 id 的 p:outputPanel 或带有 id 的 h:outputPanel 来更新。

    然后您可以从 p:ajax 中引用 id。

    【讨论】:

    • 我将 div 更改为 并将 p:ajax 更改为 但面板仍然没有刷新@anm
    猜你喜欢
    • 2016-11-01
    • 2013-09-13
    • 2015-02-02
    • 2012-04-23
    • 2012-09-23
    • 2016-12-05
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多