我想根据表单的内容来更改DataTable的内容(将其视为搜索栏功能).我以前在wicket 1.5.x中这样做,但是似乎不能让它在小门6.0.0-beta2中工作.它似乎没有进入AjaxButton的onSubmit方法.其他一切工作正常,每个组件呈现正确,并且在页面加载时,dataTable中填充了正确的数据,但是当我单击按钮时,没有任何反应.
任何帮助将不胜感激.这是我的代码如何
dataTable:
public SubscriberPage(PageParameters parameters) {
super(parameters);
add(new SearchForm("searchForm"));
List> columns = new ArrayList>();
columns.add(new PropertyColumn(new Model("Telephone Number"),"tn","tn"));
[...]
columns.add(new PropertyColumn(new Model("Initialized MB"),"initializedMB"));
table = new AjaxFallbackDefaultDataTable("table",columns,subscriberDataProvider,40);
table.setOutputMarkupId(true);
add(table);
}
这里是AjaxButton的形式:
private class SearchForm extends Form {
private static final long serialVersionUID = 1L;
private String tnModel;
private Label tnLabel = new Label("tnLabel","Telephone Number :");
private TextField tn;
public SearchForm(String id) {
super(id);
tn = new TextField("tnTextField",new PropertyModel(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);
}
}