2016-04-06 22 views
2

StatelessLink ("Profili sil?") Içeren bir formum var. Bu bağlantı tıklandığında, daha fazla bağlantı içeren bir "WebMarkupContainer" görünür hale getirilir ("Gerçekten silme profili!" Ve "İptal").WebMarkupContainer'daki StatelessLinks olayı tetiklenmiyor

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); 
} 

Ve bazı 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> 

Ancak WebMarkupContainer asla yangında StatelessLink s olaylar.

+0

Ben #cancelDeleteProfile() (doğru) deleteProfileContainer # SetVisible çağırır varsayalım? DeleteProfileLink/deleteProfileCancelLink tıklandığında, yeni bir sayfa örneği oluşturulur ve kapsayıcı artık görünmez. – svenmeier

+0

deleteProfileWarning() çağrıları deleteProfileContainer.setVisible (true) ', cancelDeleteProfile() işlevi" false "olarak ayarlar. – mosquito87

cevap

1

Bunu bazı özel JavaScript'lerle optimize etmelisiniz. Fikir şu şekildedir: Wicket, sayfanın ilk sürümündeki üç düğmeyi de oluşturur. İlk düğme başlangıçta görünür durumdadır ve başlangıçta gizli olan (CSS, display: none) kapsayıcıyı diğer iki düğmeyle göstermek için JavaScript'i kullanır. Gerisi şimdi olduğu gibi.

Son zamanlarda dev @ posta listesinde sorunla ilgili bir şey tartışıldı: http://markmail.org/message/dkmxw4urqm444ryc

İlgili konular