GWT Double Click with addCellPreviewHandler 仅在 table 的第一页有效

GWT Double Click with addCellPreviewHandler works only in first page of table

我在一个项目中使用 GWT 2.5,我必须在 table 中添加一个双击事件,我必须在其中同时获取行和列,因此,根据之前的问题,我创建了以下内容:

cellTable.addCellPreviewHandler(new CellPreviewEvent.Handler<BusStopsInfo>() {

           long lastClick=-1000;

           @Override
           public void onCellPreview(CellPreviewEvent<BusStopsInfo> event) {
               long clictAt = System.currentTimeMillis();
               if(event.getNativeEvent().getType().contains("click")){
                   if(clictAt-lastClick < 500) { // dblclick on 2 clicks detected within 500 ms
                       if (BrowserEvents.CLICK.equalsIgnoreCase(event.getNativeEvent().getType())) {
                            int columnHit = event.getColumn();
                            if (selectedItems != null){
                                selectedItems.clear();
                                selectionModel.clear();
                            }
                            selectedItems = new ArrayList<BusStopsInfo>();
                            Set<HasData<BusStopsInfo>> bsinfos = dataProvider.getDataDisplays();
                            Iterator<HasData<BusStopsInfo>> iter = bsinfos.iterator();
                            HasData<BusStopsInfo> bsinfo = iter.next();
                            Iterable<BusStopsInfo> iterbs = bsinfo.getVisibleItems();
                            int counterbs = 0;
                            for (BusStopsInfo bs : iterbs){
                                if (counterbs == event.getIndex()){
                                    selectedItems.add(bs);
                                    break;
                                }
                                counterbs++;
                            }
                            if (columnHit == 8){
                                edit_associations.click();
                            } else{
                                edit.click();
                            }
                       }

                   }
                   lastClick = System.currentTimeMillis();
               }
           }
       });

我也在我的 table 中使用分页 (SimplePager),所以,上面的代码在 table 的第一页中工作正常,但在其他页面中不起作用比第一。有人有什么建议吗?

我发现了错误。以防万一它会帮助其他人错误在这里:

if (counterbs == event.getIndex()){
                                selectedItems.add(bs);
                                break;
                            }

替换为:

if (counterbs == (event.getIndex() - (pagertop.getPage()*pagertop.getPageSize()))){
                                selectedItems.add(bs);
                                break;
                            }

因为dataProvider在每一页都是从0开始的。