Sử dụng vaadin (7.7.3) Tôi lọc lưới theo tên, quá trình lọc này mất vài giây để xóa các đối tượng khỏi guồng Grid
. Và như vậy, nếu tôi bấm vào timelapse rằng một hàng của Grid
đó được lấy ra từ các Container
, nó đặt ra một ngoại lệ:Cách bắt ngoại trừ khi lọc lưới vaadin
Caused by: java.lang.IllegalArgumentException: Given item id (5422bef6-e472-4d3e-af54-316c52d373da) does not exist in the container
at com.vaadin.ui.Grid$AbstractSelectionModel.checkItemIdExists(Grid.java:1371)
at com.vaadin.ui.Grid$SingleSelectionModel.select(Grid.java:1460)
at com.vaadin.ui.Grid$SingleSelectionModel$1.select(Grid.java:1445)
Tôi đoán đây là bình thường vì nó loại bỏ các đối tượng từ Container
và sau đó nó sẽ tuyên truyền cho gui.
Tôi đã nghĩ đến việc bắt ngoại lệ ghi đè phương thức checkItemIdExists()
trong lớp Grid
của mình nhưng nó sẽ bắt ngoại lệ cho mọi tình huống và đó không phải là hành vi mà tôi đang tìm kiếm.
Câu hỏi của tôi là: Làm thế nào tôi có thể nắm bắt ngoại lệ này chỉ trong trường hợp này?
Bạn đang hỏi cách bỏ chọn phần tử trước khi sử dụng bộ lọc? hoặc bạn đang hỏi làm thế nào để tránh ngoại lệ này? – JorgeHortelano
Đơn giản chỉ cần bắt IllegalArgumentException .. – Jobin
Bắt ngoại lệ là không thể. Ngoại lệ này không được khởi chạy trong mã ứng dụng. Dường như được đưa ra bởi thư viện thành phần vaadin khi sử dụng thành phần. – JorgeHortelano