jsf primefaces教學 showcase - JSF + PrimeFaces:`update`屬性不更新組件




1 Answers

update屬性應指向HTML DOM樹中的現有客戶端ID。 但是,由於該元素在HTML DOM樹中不可用,因為它不是由服務器端呈現的,因此JS / ajax無法在HTML DOM樹中找到任何要更新的內容。

實際上,您應該將它包裝在HTML DOM樹中始終可用的另一個元素中,以便Ajax可以找到它,然後在update使用其客戶端ID。 在您的情況下,您可以使用padding

<div id="mainPanel">
   <h:panelGroup id="padding" layout="block">
       <h:outputText id="text" value="Personal Feed" rendered="#{Profile.renderComment}"/>
   </h:panelGroup>
   <div id="right">
       <h:form>
           <p:commandButton value="Update" actionListener="#{bean.toggleComment}" update=":padding" />
       </h:form>
   </div>
</div>
sample datatable

這是我的佈局

<div id="mainPanel">
   <div id="padding">
       <h:outputText id="text" value="Personal Feed" rendered="#{Profile.renderComment}"/>
   </div>
   <div id="right">
       <h:form>
           <p:commandButton value="Update" actionListener="#{bean.toggleComment}" update="text" />
       </h:form>
   </div>
</div>

當我單擊鏈接Update ,它應該打開和關閉renderComment布爾值,它不會切換文本Personal Feed的顯示。 現在,如果我在h:outputText周圍放置一個表單,然後update form ,那麼它就可以了。 這是為什麼?




Related