Tôi có một vài thử nghiệm wicket nhắm mục tiêu một DataTable sắp xếp, cụ thể là ajax-nhấp vào các tiêu đề cột có thể sắp xếp và xác nhận nội dung của các hàng nội dung được hiển thị. Bây giờ hệ thống cấp bậc thành phần của con cháu các thành phần của bảng là tự động tạo ra bởi các khuôn khổ wicket, và kết quả là đường dẫn đến các liên kết sắp xếp (ajax) tương tự như:Làm thế nào để giữ cho các đường dẫn thành phần không đổi trong các thử nghiệm đơn vị khi sử dụng Wicket Tester
table:topToolbars:toolbars:0:headers:1:header:orderByLink
Tuy nhiên, khi các DataTable được tái rendered qua bài kiểm tra, chỉ mục của thành phần thanh công cụ được tăng lên mỗi lần tức là tương tự như:
table:topToolbars:toolbars:1:headers:1:header:orderByLink
sau đó ngắt các đường dẫn mã hóa cứng của các thử nghiệm thành công khi chúng không khớp nữa.
Đoạn mã cho việc xây dựng DataTable như sau:
final PayeesProvider dataProvider = new PayeesProvider();
table = new DataTable<ResponsePayeeDetails>("payees", columns, dataProvider, rowsPerPage);
table.setOutputMarkupId(true);
table.addTopToolbar(new AjaxFallbackHeadersToolbar(table, dataProvider) {
private static final long serialVersionUID = -3509487788284410429L;
@Override
protected WebMarkupContainer newSortableHeader(final String borderId, final String property, final ISortStateLocator locator) {
return new AjaxFallbackOrderByBorder(borderId, property, locator, getAjaxCallDecorator()) {
@Override
protected void onRender() {
System.out.printf("Path: %s\n", this.getPageRelativePath());
super.onRender();
}
private static final long serialVersionUID = -6399737639959498915L;
@Override
protected void onAjaxClick(final AjaxRequestTarget target) {
target.add(getTable(), navigator, navigatorInfoContainer);
}
@Override
protected void onSortChanged() {
super.onSortChanged();
getTable().setCurrentPage(0);
}
};
}
});
table.addBottomToolbar(new NoRecordsToolbar(table));
add(table);
Để được chính xác, khi tôi chạy thử nghiệm của tôi, System.out.printf trên tuyên bố in:
(1st thử nghiệm)
Path: payees:topToolbars:toolbars:0:headers:1:header
Path: payees:topToolbars:toolbars:0:headers:2:header
(thử nghiệm thứ 2)
Path: payees:topToolbars:toolbars:2:headers:1:header
Path: payees:topToolbars:toolbars:2:headers:2:header
(thử nghiệm thứ 3)
Path: payees:topToolbars:toolbars:4:headers:1:header
Path: payees:topToolbars:toolbars:4:headers:2:header
(thử nghiệm thứ 4)
Path: payees:topToolbars:toolbars:6:headers:1:header
Path: payees:topToolbars:toolbars:6:headers:2:header
Path: payees:topToolbars:toolbars:6:headers:1:header
Path: payees:topToolbars:toolbars:6:headers:2:header
Path: payees:topToolbars:toolbars:6:headers:1:header
Path: payees:topToolbars:toolbars:6:headers:2:header
(5 thử nghiệm)
Path: payees:topToolbars:toolbars:8:headers:1:header
Path: payees:topToolbars:toolbars:8:headers:2:header
Có ai biết làm thế nào tôi có thể buộc các thế hệ chỉ số được xác định hơn/lặp lại. Ngoài ra, có cách nào để tạo thẻ hoang dã hoặc nói cách khác là đường dẫn, để làm cho chúng miễn dịch với những gia số này?
Bất kỳ trợ giúp nào sẽ được đánh giá cao về các khoảng trống!
Cảm ơn lời giải thích rất rõ ràng Patricia. –