Rückgabewert von confirm() Dialog in Java Code

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Rückgabewert von confirm() Dialog in Java Code

    Hallo,
    ich habe folgendes Problem. Über einen Delete Button sollen Einträge aus einer DB gelöscht werden. Eine vorherige Abfrage "Wollen Sie wirklich..." soll das Löschen bestätigt werden. Meine erste Idee war eine JavaScript Dialogbox Confirm(). Das Problem ist, dass "Abbrechen" trotzdem zum Löschen des Eintrages führt. Wie kann ich also den Wert von CHECK==false so zurückgeben, dass die Methode nur ausgeführt wird wenn CHECK==true ist? Anbei etwas Code zur Veranschaulichung. Danke für Tips. Dirk


    Quellcode

    1. <af:commandButton text="Delete"
    2. binding="#{backing_app_edit_link.commandButton2}"
    3. id="commandButton2"
    4. actionListener="#{bindings.removeEntity.execute}"
    5. disabled="#{!bindings.removeEntity.enabled}"
    6. action="GlobalHome"
    7. onclick='Check = confirm("Are you sure to delete this Link); if (Check == false) history.go(-2); '
    8. blocking="true">
    9. <af:setActionListener from="#{true}"
    10. to="#{userState.refresh}"/>
    11. </af:commandButton>
    Alles anzeigen
  • nach dem try and error Prinzip bin ich ziemlich schnell selber drauf gekommen.
    Es muss erstmal nicht history.go(-2), sondern history.back() heissen und darf nicht <af:commandButton text="Delete"> stehen, sondern muss vorher in <af:panelButtonBar> eingefügt sein.

    Nachstehend der korrigierte Code:


    Quellcode

    1. <af:panelButtonBar binding="#{backing_app_edit_link.panelButtonBar2}"
    2. id="panelButtonBar2"
    3. onclick='Check = confirm(&quot;Are you sure to delete this Link?&quot;); if (Check == false) history.back(); '>
    4. <af:commandButton text="Delete"
    5. binding="#{backing_app_edit_link.commandButton2}"
    6. id="commandButton2"
    7. actionListener="#{bindings.removeEntity.execute}"
    8. disabled="#{!bindings.removeEntity.enabled}"
    9. action="GlobalHome"
    10. blocking="true">
    11. <af:setActionListener from="#{true}"
    12. to="#{userState.refresh}"/>
    13. </af:commandButton>
    14. </af:panelButtonBar>
    Alles anzeigen
  • Ein Geistesblitz meinerseits: Könnte es sein, dass Javascript wohl Clientseitig ausgeführt wird, jedoch nichts an die serverseitige Applikation zurückgeben kann und deshalb jedesmal die "remove.Entity" aufgerufen wird? Weitere Google Suche brachte mich darauf, dass es auch über ADF sogenannte Dialogboxen gibt. Die fallen ja dann eher in meine Kategorie. Sollte des Rätsels Lösung nicht fern liegen, melde ich mich zurück.