Tôi muốn thay đổi nội dung của một DataTable tùy thuộc vào nội dung của biểu mẫu (nghĩ về nó dưới dạng chức năng của thanh tìm kiếm). Tôi sử dụng để làm điều đó trong wicket 1.5.x nhưng tôi dường như không thể làm cho nó hoạt động trong wicket 6.0.0-beta2. Nó dường như không nhập vào phương thức onSubmit của AjaxButton. Mọi thứ khác hoạt động tốt, mọi thành phần hiển thị chính xác và dataTable được lấp đầy với dữ liệu chính xác khi tải trang, nhưng khi tôi nhấp vào nút, không có gì xảy ra.wicket 6.0.0-beta2 Cập nhật nội dung của DataTable khi gửi biểu mẫu với AjaxButton
Mọi trợ giúp sẽ được đánh giá cao. Đây là những gì đang nhìn tôi như:
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);
}
và đây là hình thức với 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);
}
}
Bạn có kiểm tra xem bạn có đạt được onSubmit() không? Qua thông báo gỡ lỗi hoặc trình gỡ lỗi? – bert
Vâng, như tôi đã nói trong câu hỏi của tôi, nó không đạt đến onSubmit() và tôi không biết tại sao ... – jrochette
Có thể là vé này có liên quan: https://issues.apache.org/jira/browse/WICKET-4630? (Trên một mặt lưu ý: bạn biết rằng có 6.0.0beta-3 có sẵn?) –