2016-04-06 4 views
2

Ich habe ein Formular mit einer StatelessLink ("Profil löschen?"). Wenn dieser Link angeklickt wird, wird eine WebMarkupContainer sichtbar gemacht, die zwei weitere Links enthält ("Really delete profile!" Und "Cancel").Event of StatelessLinks in WebMarkupContainer nicht auslösen

Java:

private StatelessLink deleteProfileWarningLink; 
private WebMarkupContainer deleteProfileContainer; 
private StatelessLink deleteProfileLink; 
private StatelessLink deleteProfileCancelLink;  

public MyForm() { 
    ... 
    deleteProfileWarningLink = new StatelessLink("profileDeleteWarningLink") { 
     @Override 
     public void onClick() { 
      deleteProfileWarning(); 
     } 
    }; 

    deleteProfileContainer = new WebMarkupContainer("deleteProfileContainer"); 
    deleteProfileContainer.setVisible(false); 

    deleteProfileLink = new StatelessLink("reallyDeleteProfileLink") { 
     @Override 
     public void onClick() { 
      deleteProfile(); 
     } 
    }; 

    deleteProfileCancelLink = new StatelessLink("cancelDeleteProfileLink") { 
     @Override 
     public void onClick() { 
      cancelDeleteProfile(); 
     } 
    }; 

    ... 

    add(deleteProfileWarningLink); 
    deleteProfileContainer.add(deleteProfileLink); 
    deleteProfileContainer.add(deleteProfileCancelLink); 
    add(deleteProfileContainer); 
} 

Und einige HTML:

<fieldset> 
    <div wicket:id="deleteProfileContainer" class="deleteProfil"> 
     <div class="wrapper"> 
      <a wicket:id="reallyDeleteProfileLink" class="button delete">Really delete profile!</a> 
      <a wicket:id="cancelDeleteProfileLink" class="button cancel">Cancel</a> 
     </div> 
    </div> 
    <span class="unitA"> 
     <a wicket:id="profileDeleteWarningLink" class="button delete">Delete profile?</a> 
    </span> 
</fieldset> 

Doch die Ereignisse der StatelessLink s im WebMarkupContainer nie Feuer.

+0

Ich gehe davon aus #cancelDeleteProfile() ruft deleteProfileContainer # setVisible (true)? Wenn auf deleteProfileLink/deleteProfileCancelLink geklickt wird, wird eine neue Seiteninstanz erstellt und der Container ist nicht mehr sichtbar. – svenmeier

+0

deleteProfileWarning() ruft 'deleteProfileContainer.setVisible (true)' auf, cancelDeleteProfile() setzt es auf 'false'. – mosquito87

Antwort

1

Ich denke, Sie sollten dies mit einigen benutzerdefinierten JavaScript zu optimieren. Die Idee ist folgende: Wicket generiert alle drei Schaltflächen in der ersten Version der Seite. Die erste Schaltfläche ist zunächst sichtbar und verwendet JavaScript, um den zunächst verborgenen Container (CSS, display: none) mit den beiden anderen Schaltflächen anzuzeigen. Der Rest ist so wie es jetzt ist.

Kürzlich haben wir über etwas, um Ihr Problem in der Liste dev @ Mailing bezogen werden: http://markmail.org/message/dkmxw4urqm444ryc

Verwandte Themen