Desidero modificare il contenuto di un DataTable in base al contenuto di un modulo (pensarlo come una funzionalità della barra di ricerca). Lo facevo in wicket 1.5.x ma non riesco a farlo funzionare in wicket 6.0.0-beta2. Non sembra entrare nel metodo onSubmit di AjaxButton. Tutto il resto funziona perfettamente, ogni componente viene visualizzato correttamente e il dataTable viene riempito con i dati corretti quando la pagina viene caricata, ma quando faccio clic sul pulsante, non accade nulla.wicket 6.0.0-beta2 Aggiornamento del contenuto di DataTable quando si invia un modulo con AjaxButton
Qualsiasi aiuto sarebbe molto apprezzato. Ecco ciò che il mio sguardo codice come:
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);
}
e qui è la forma con l'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);
}
}
Hai testato se raggiungi l'onSubmit()? Tramite messaggio di debug o debugger? – bert
Sì, come ho detto nella mia domanda, non sta raggiungendo l'onSubmit() e non so perché ... – jrochette
Potrebbe essere che questo biglietto sia correlato: https://issues.apache.org/jira/browse/WICKET-4630? (Nota a margine: sai che c'è 6.0.0beta-3 disponibile?) –