ajax is not updating a component situated in another <ui:define

混江龙づ霸主 提交于 2020-02-07 12:30:08

问题


Hi i have a command link so when click it i action="#{projectAdminisrationMB.showGroups(userObj)}" a fieldset will be rendred <p:fieldset legend="Manage User Groups" id="manageUserGroupsFS" rendered="#{projectAdminisrationMB.manageUserGroupsFSFlag}"> when the fieldset was in the same <ui:define name="body"> everything works but when i put it in a separated ui:define it will not be rendered.

Here's the code :

<ui:define name="body">

         <h:form id="manageProjeUFform">  

            <div class="right">

             <p:growl id="growl" showDetail="true" sticky="true" />  

             <br/><br/><br/><br/>

<h:panelGrid columns="2" cellpadding="10">  

   <p:column>
            <p:fieldset legend=" Users ">  
               <h:panelGrid columns="2" cellpadding="10">  

             <p:dataTable border="1" value="#{projectAdminisrationMB.projectUsersList}"
                    id="projectUserDt" 
                    var="userObj"
                    rowKey="#{userObj.name}"
                     selection="#{projectAdminisrationMB.selectedExistingProjectUser}"
                     selectionMode="single"
                     rowIndexVar="rowIndex"
                      binding="#{table1}">
                        <p:column id="column1">
                            <f:facet name="header">
                                <h:outputText value="Login"></h:outputText>
                            </f:facet>


                           <h:outputText value="#{userObj.name}"/>  


                        </p:column>
                        <p:column id="column2">
                            <f:facet name="header">
                                <h:outputText value="Entire Name"></h:outputText>
                            </f:facet>
                            <h:outputText value="#{userObj.lastName}"></h:outputText>



                            <h:outputText value="#{userObj.firstName}"></h:outputText>
                         </p:column>


                                <p:column id="column5">
                            <f:facet name="header">
                                <h:outputText value="Groups"></h:outputText>
                            </f:facet>

                             <p:commandLink id="manageUG"  title="Manage User Groups" style="margin-right:5px"  update=":rightContentform:manageUserGroupsFS"   action="#{projectAdminisrationMB.showGroups(userObj)}"  ajax="true"> 
                                   <h:graphicImage value="../images/cssImg/manage-groups-icon.png"   />

                                 <f:setPropertyActionListener target="#{projectAdminisrationMB.selectedUserRow}" value="#{userObj}" />
                                 <f:setPropertyActionListener target="#{projectAdminisrationMB.selectedUserRow.dbRowIndex}" value="#{table.rowIndex}" />

                            </p:commandLink>   



                         </p:column>

                         <f:facet name="footer">  


                  <p:commandButton id="addProjectUserdlg" value=" Add " onclick="dlg1.show()"  />  
                  <p:commandButton id="deleteProjectUserdlg" value=" Delete "  onclick="confirmation.show()"/>  

                          </f:facet> 

                </p:dataTable>

               </h:panelGrid>  
             </p:fieldset>  

        </div>

         </h:form>
     </ui:define>

   <h:panelGrid columns="3">
    <h:panelGrid id="display" header="User Detail" columns="2" cellpadding="4">  

                           <f:facet name="header">  
                             <p:graphicImage value="/images/users/user.png"/>  
                          </f:facet>   

                            <h:outputText value="Login:" />  
                            <h:outputText value="#{projectAdminisrationMB.selectedUserRow.lastName}" />  

                            <h:outputText value="Name:" />  
                            <h:outputText value="#{projectAdminisrationMB.selectedUserRow.lastName}" />  

                            <h:outputText value="First Name:" />  
                            <h:outputText value="#{projectAdminisrationMB.selectedUserRow.firstName}" />  

                            <h:outputText value="Email:" />  
                            <h:outputText value="#{projectAdminisrationMB.selectedUserRow.email}" />  

                            <h:outputText value="Phone:" />  
                            <h:outputText value="#{projectAdminisrationMB.selectedUserRow.phoneNumber}" />  

                      </h:panelGrid>  

           <p:pickList id="pickList" value="#{projectAdminisrationMB.selectedUserGroups}" var="group"   
            itemLabel="#{group}" itemValue="#{group}" converter="groupConverter" > 

             <f:facet name="sourceCaption">Belong To</f:facet>  
             <f:facet name="targetCaption">Exclude From</f:facet> 

              <p:column style="width:25%">  
                    <p:graphicImage value="/images/group/#{group.name}.gif" />  
               </p:column>  

             <p:column style="width:75%;">  
                  #{group.name}  
             </p:column> 
              <p:ajax event="transfer" listener="#{projectAdminisrationMB.onTransferGroup}" update=":manageProjeUFform:growl" />  
             </p:pickList>

             <p:commandButton id="saveGroupsBtn" value="Save"  update=":manageProjeUFform:growl" actionListener="#{projectAdminisrationMB.saveUserGroupsModif}"/>  



          </h:panelGrid>
  </p:fieldset>
</h:form>
  </ui:define>

Any help will be appreciated .


回答1:


here's the solution enjoy it :)

<p:commandLink id="manageUG"  title="Manage User Groups" style="margin-right:5px"  
 update="@all"   action="#{projectAdminisrationMB.showGroups(userObj)}"  ajax="true"> 
                                   <h:graphicImage value="../images/cssImg/manage-groups-icon.png"   />

                                 <f:setPropertyActionListener target="#{projectAdminisrationMB.selectedUserRow}" value="#{userObj}" />
                                 <f:setPropertyActionListener target="#{projectAdminisrationMB.selectedUserRow.dbRowIndex}" value="#{table.rowIndex}" />

                            </p:commandLink>

i used @all to update the ui define section that's it



来源:https://stackoverflow.com/questions/13296268/ajax-is-not-updating-a-component-situated-in-another-uidefine

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!