diff --git a/panel/tests/widgets/test_tables.py b/panel/tests/widgets/test_tables.py index 59d7c95d3a..31e717bd6d 100644 --- a/panel/tests/widgets/test_tables.py +++ b/panel/tests/widgets/test_tables.py @@ -1734,3 +1734,19 @@ def test_tabulator_cell_click_event(): event = CellClickEvent(model=None, column=col, row=row) table._process_event(event) assert values[-1] == (col, row, data[col].iloc[row]) + +def test_tabulator_pagination_remote_cell_click_event(): + df = makeMixedDataFrame() + table = Tabulator(df, pagination='remote', page_size=2) + + values = [] + table.on_click(lambda e: values.append((e.column, e.row, e.value))) + + data = df.reset_index() + for col in data.columns: + for p in range(len(df)//2): + table.page = p+1 + for row in range(2): + event = CellClickEvent(model=None, column=col, row=row) + table._process_event(event) + assert values[-1] == (col, (p*2)+row, data[col].iloc[(p*2)+row]) diff --git a/panel/widgets/tables.py b/panel/widgets/tables.py index 0d918da837..c66dd66ad5 100644 --- a/panel/widgets/tables.py +++ b/panel/widgets/tables.py @@ -1043,7 +1043,7 @@ def _cleanup(self, root): def _process_event(self, event): if self.pagination == 'remote': nrows = self.page_size - event.row = (self.page-1)*nrows + event.row = event.row+(self.page-1)*nrows if event.column not in self.buttons: if event.column not in self._processed.columns: event.value = self._processed.index[event.row]