Ich versuche primefaces <p:dialog>
kombiniert mit <p:commandButton>
zu verwenden. In meiner .xhtml Seite habe ich eine Auswahlliste und einen Befehlsschaltfläche, die verwendet wird, um einen Dialog anzuzeigen. Der Dialog zeigt eine Datentabelle mit Zielwerten aus der Auswahlliste an. Dialog hat zwei Schaltflächen: Abbrechen und Senden. Mein Problem ist, dass der Senden-Button nicht ausgelöst wird. Was komisch ist, funktioniert commandButton out of dialog.Primefaces dialog + commandButton
Hier ist meine .xhtml:
<body>
<ui:composition template="./../resources/mainTemplate.xhtml">
<ui:define name="content">
<h:form>
<p:dialog id="dlg" header="#{messages.chooseSkillLevel}" widgetVar="dlg" modal="true" dynamic="true">
<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();" /> THIS BUTTON IS NOT FIRED
<p:commandButton value="#{messages.cancel}" onclick="dlg.hide()"/>
</p:dialog>
<p:pickList value="#{editSkills.skills}" var="skill" effect="none"
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}" action="#{editSkills.afterSubmit}" update="dlg" oncomplete="dlg.show()" /> THIS BUTTON WORKS FINE
<p:commandButton value="#{messages.cancel}" action="profile" immediate="true"/>
</h:form>
</ui:define>
</ui:composition>
</body>
Ich habe Schaltfläche arbeiten und nicht einen Arbeitstag. Was muss ich tun, damit es funktioniert?
Haben Sie sich die Konsole angesehen, die keinen Ajax-Anruf macht? oder funktioniert es einfach nicht? Versuchen Sie in Firebug zu suchen, wenn es Daten an den Server sendet, oder ist das AJAX-Feuern und die Methode '# {editSkills.showSkillsAndLevels}' wird überhaupt nicht aufgerufen? Überprüfen Sie auch, ob Firebug keine JS-Fehler anzeigt. – Mindwin
@Mindwin scheint es, dass es überhaupt nicht aufgerufen wird. Es werden auch keine JS-Fehler angezeigt. – AjMeen