Ich möchte den Inhalt einer DataTable abhängig vom Inhalt eines Formulars ändern (denken Sie an es als Suchleiste Funktionalität). Ich habe das in Wicket 1.5.x gemacht, aber ich kann es nicht in Wicket 6.0.0-Beta2 funktionieren lassen. Es scheint nicht in der OnSubmit-Methode des AjaxButton einzugeben. Alles andere funktioniert gut, alle Komponenten werden korrekt gerendert und die DataTable wird beim Laden der Seite mit den korrekten Daten gefüllt, aber wenn ich auf die Schaltfläche klicke, passiert nichts.Wicket 6.0.0-beta2 Aktualisieren von Inhalt von DataTable beim Absenden eines Formulars mit AjaxButton
Jede Hilfe würde sehr geschätzt werden. Hier ist, was mein Code wie folgt aussehen:
Datatable:
public SubscriberPage(PageParameters parameters) {
super(parameters);
add(new SearchForm("searchForm"));
List<IColumn<Subscriber, String>> columns = new ArrayList<IColumn<Subscriber, String>>();
columns.add(new PropertyColumn<Subscriber, String>(new Model<String>("Telephone Number"),
"tn",
"tn"));
[...]
columns.add(new PropertyColumn<Subscriber, String>(new Model<String>("Initialized MB"),
"initializedMB"));
table = new AjaxFallbackDefaultDataTable<Subscriber, String>("table",
columns,
subscriberDataProvider,
40);
table.setOutputMarkupId(true);
add(table);
}
und hier ist die Form mit dem AjaxButton:
private class SearchForm extends Form<String> {
private static final long serialVersionUID = 1L;
private String tnModel;
private Label tnLabel = new Label("tnLabel", "Telephone Number :");
private TextField<String> tn;
public SearchForm(String id) {
super(id);
tn = new TextField<String>("tnTextField", new PropertyModel<String>(this, "tnModel"));
tn.setOutputMarkupId(true);
add(tnLabel);
add(tn);
AjaxButton lSearchButton = new AjaxButton("searchButton") {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
SubscriberFilter filter = new SubscriberFilter();
target.add(table);
if (!(tn.getValue() == null) && !tn.getValue().isEmpty()) {
filter.setTn(tn.getValue());
}
// giving the new filter to the dataProvider
subscriberDataProvider.setFilterState(filter);
}
@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
// TODO Implement onError(..)
throw new UnsupportedOperationException("Not yet implemented.");
}
};
lSearchButton.setOutputMarkupId(true);
this.setDefaultButton(lSearchButton);
add(lSearchButton);
}
}
Haben Sie getestet, wenn Sie die onSubmit() erreichen? Über Debug-Nachricht oder Debugger? – bert
Ja, wie ich in meiner Frage gesagt habe, erreicht es nicht die onSubmit() und ich weiß nicht warum ... – jrochette
Könnte es sein, dass dieses Ticket verwandt ist: https://issues.apache.org/jira/browse/WICKET-4630? (Nebenbei bemerkt: Sie wissen, dass 6.0.0beta-3 verfügbar ist?) –