私は2つのコンテナBEFOREとAFTERを持っています。ページがロードされると、BEFOREが表示され、AFTERは表示されません。Java Wicket AjaxFallbackLinkが表示された後にダブルクリックする必要があります
BEFOREには、BEFOREとAFTERを再描画し、BEFOREを非表示にしてAFTERを可視化するAjaxFallbackLinkが含まれています(可視性トリガー)。
AFTER内にAjaxFallbackLinkもあります。これは逆です:BEFOREとAFTERを再描画しますが、BEFOREとAFTERは見えなくします。
問題:AFTER内のリンクでは、必要なときにパネルを再描画するために2回のクリックが必要です。私は見つけることができるすべてのコンポーネントでtrueにsetOutputMarkupPlaceholderTagを設定しましたが、パネルを再描画するためにはAFTERリンクで2回のクリックが必要です。
これを解決する方法はありますか?
は、ここではいくつかの(簡体字)のコードです:
private class ViewDatesFragment extends Fragment<Campaign> {
private ViewDatesFragment(final MarkupContainer markupProvider) {
super("flightNoDates", "viewDatesFragment", markupProvider);
add(new AddDatesLink());
setOutputMarkupPlaceholderTag(true);
}
private class AddDatesLink extends AjaxFallbackLink<Campaign> {
private AddDatesLink() {
super("addDates");
add(new Label("startDate", "This is the start date").setOutputMarkupPlaceholderTag(true));
setOutputMarkupPlaceholderTag(true);
}
@Override
public void onClick(final AjaxRequestTarget target) {
target.addComponent(viewDatesContainer.setVisible(false));
target.addComponent(editDatesContainer.setVisible(true));
}
}
}
private class EditDatesFragment extends Fragment<Campaign> {
private EditDatesFragment(final MarkupContainer markupProvider) {
super("flightDates", "editDatesFragment", markupProvider);
add(new CancelDatesLink().setOutputMarkupPlaceholderTag(true));
setOutputMarkupPlaceholderTag(true);
}
private class CancelDatesLink extends AjaxFallbackLink {
private CancelDatesLink() {
super("cancelDates");
add(new Label("cancelDatesText", "cancel").setOutputMarkupPlaceholderTag(true));
setOutputMarkupPlaceholderTag(true);
}
@Override
public void onClick(final AjaxRequestTarget target) {
target.addComponent(viewDatesContainer.setVisible(true));
target.addComponent(editDatesContainer.setVisible(false));
}
}
}
コードを表示してください。 –