0

こんにちは、私はコマンド リンクを持っているので、それをクリックするaction="#{projectAdminisrationMB.showGroups(userObj)}"と、フィールドセットが<p:fieldset legend="Manage User Groups" id="manageUserGroupsFS" rendered="#{projectAdminisrationMB.manageUserGroupsFSFlag}"> 同じ場合は<ui:define name="body">すべてレンダリングされますが、別の ui:define に配置するとレンダリングされません。

コードは次のとおりです。

<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>

どんな助けでも大歓迎です。


Fragment で onCreateView を強制的に呼び出す

どうやらビューが削除され、getView() が null を返すため、タスク キラーを使用した後、アプリケーションがかなりクラッシュします。たまたまnullの場合、フラグメントにそのビューを強制的に再作成させるにはどうすればよいですか?

4

1 に答える 1

1

これが解決策です:)

<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>

@allを使用して、UI定義セクションを更新しました。

于 2012-11-08T19:40:07.573 に答える