Datatable keyboard navigation issues

Here are some of the issues with datatable keyboard navigation:

  1. “End”-key moves to the last row of the table only in case you have gone there once using PgDn, arrow keys of just scrolling with mouse. (Even though API reports back the “total_count” or the total amount of rows available.)

  2. “End”-key goes to the very end of the table, meaning that it also scrolls horizontally to the right, which doesn’t feel correct. And at the same time “Home”-button doesn’t scroll back to the left.

  3. It is not possible to scroll right or left using arrow keys on keyboard. Horizontal scroll only works with scroll-bars or mouse.

Can be tested here: http://webix.com/snippet/05819e43

Hi,

(1) is a known limitation. As the last row is not loaded yet, datatable can’t select it.

(2) is a bug, will be fixed in the next build. In row selection mode, end key must not affect x-scrolling.

(3) it works for “cell” selection mode http://webix.com/snippet/911ec407 If this is not enough you can bind your own hotkey to the datatable and link them to x-scroll functionality.

Thank you for the answers.

I have another question about the (1). If the API returns the total_count-value, why is it not possible to load from API the needed amount of rows starting from the correct position (total_count - datafetch) when the “end”-key is pressed?
As I understand, the whole data from API is not stored locally anyway and it is loaded in chunks as user navigates “up”/“down” in datatable?

Yes, the component knows the size of data, and can move the scroll to the last positions, so the data at the end of the grid will be loaded.

The problems are next

a) we can move scroll, but we can’t select data as data loading is async.

b) if we have rows with custom height, there is no guarantee that after data loading we will see the last row. ( we can scroll assuming the common row height, but due to actual row height difference position may shift )

It possible to solve both cases but it will require a custom solutions for some specific scenario.

If it will work for you, I can show as scrolling to the last record without row selection can be added as “end” key handler.

End-key not being able to move to last row is not a show-stopper.
But if it can be achieved I would be thankful if you could show me some tips on how to do it.