0

dialogをクリックした後に が表示されるようにしたいのですcommandButtonが、まったく表示されません。ボタンがダイアログを表示するのではなく、フォームを送信していると思います。さらに、作成しようとしましたが、正常に機能していません。'Cancel' commandButton最初にクリックした場合にのみ機能します(最初commandButtonに開くと思われるものをクリックするdialogと、キャンセルボタンは機能しなくなります)。

これが私の.xhtmlです:

<ui:define name="content">
     <p:dialog id="dlg" header="#{messages.chooseSkillLevel}" widgetVar="dlg" modal="true" dynamic="true">
       <h:form>
         <h:dataTable value="#{editSkills.skillsAndLevels}" var="skillslevel">
            <h:column>
               #{skillslevel.skill.umiejetnosc}
            </h:column>
            <h:column>
               <p:selectOneMenu value="#{skillslevel.level}" >
                   <f:selectItems value="#{editSkills.levels}" var="level" itemLabel="#{level.stopien}" itemValue="#{level.id}" />
               </p:selectOneMenu>
            </h:column>
         </h:dataTable>
         <p:commandButton value="#{messages.confirm}" action="#{editSkills.showSkillsAndLevels}" oncomplete="dlg.hide();" />
         <p:commandButton value="#{messages.cancel}" onclick="dlg.hide()"/>
       </h:form>
     </p:dialog>
     <h:form>
        <p:messages/>
          <p:pickList value="#{editSkills.skills}" var="skill" effect="none"  converter="#{picklistConverter}"
                itemValue="#{skill.id}" itemLabel="#{skill.umiejetnosc}"  
                showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" 
                addLabel="#{messages.add}" removeLabel="#{messages.remove}" removeAllLabel="#{messages.removeAll}" >  
                <f:facet name="sourceCaption">#{messages.skillsList}</f:facet>  
                <f:facet name="targetCaption">#{messages.yourSkills}</f:facet>
                <p:ajax event="transfer" listener="#{editSkills.onTransfer}" /> 
                <p:column style="width:100%;">  
                    #{skill.umiejetnosc}  
                </p:column> 
          </p:pickList>      
          <p:commandButton value="#{messages.confirm}" actionListener="#{editSkills.afterSubmit}" update=":dlg" oncomplete="dlg.show();" />  THIS IS THE MENTIONED BUTTON  
          <p:commandButton value="#{messages.cancel}" action="profile" immediate="true"/>  THIS IS THE CANCEL BUTTON
     </h:form>
</ui:define>

うまく機能させるにはどうすればよいですか?

4

1 に答える 1

1

あなたのコードは私には問題ないようです:)。idただし、とのwidgetVar属性が<p:dialog>同じ値であってはならないことに注意する必要があります。次のようなことを試してください。

<p:dialog id="levelDlg" widgetVar="levelDialog">
于 2013-01-19T02:18:11.480 に答える