我在 GWT 中使用 CellTable 并尝试在发生某些事件时向一行添加样式。添加样式的代码如下:
Range range = playlistTable.getVisibleRange();
int start = range.getStart();
for (int i = start; i < start + playlistTable.getPageSize(); i++) {
if (playlistData.get(i) == currentSong) {
playlistTable.getRowElement(i).addClassName("highlightRow");
} else {
playlistTable.getRowElement(i).removeClassName("highlightRow");
}
}
当应用程序加载并显示单元格表的第一页时,一切正常。但是,当我滚动到下一页并调用上述代码时,GWT 会引发 IndexOutOfBoundsException。当我调用 getRowElement 时,它不喜欢我的索引,只有当索引“不在当前页面上”时才会发生这种情况。就好像 getRowElement 总是认为当前页面是第一页。如果我滚动回第一页,一切正常。有没有人遇到过这个?我错过了什么还是这是 GWT 中的错误?