Description
Related to #1276
Suppose the table is configured to display the selection checkboxes. Then the checkbox at the table header behaves as "select/unselect all".
It is non-trivial to define the behavior of this checkbox when only a subset of data is visible.
I can see three situations when this happens. One is using paging, the other is column filter and the third one is search bar.
In all these scenarios a legitimate behavior question is whether the "select all" checkbox should select all data or only the visible part of it. The same goes for "unselect all".
My personal intuition is that the behavior in paging mode should differ from the behavior in filtering/searching mode. The latter is a conscious user choice whereas the former is the display restriction. I consider paging as a visual alternative to scrolling (sometimes when the screen real estate is small, both take place). The selection of page size is also somewhat arbitrary. The situation where the user sees only the first page is similar to the situation where the table is large and not visible on the screen in its entirety. Therefore my intuition says that paging should not affect the behavior of "select all", meaning pressing the checkbox should select all data, not just the visible portion of it.
This is quite different from the filtering/searching when the user consciously filters part of the data. In this situation I expect "select/unselect all" to select only the filtered data (again, regardless of the paging).
I understand however that this behavior depends on the business case and one could argue the opposite. For example, in GMail, where the data set is really large and people don't reason about the whole set of their emails, the "select all" selects only the visible page. Therefore I would appreciate if this behavior could be made configurable.
P.S. If you're asking while I'm using paging when my data set is "finite", the answer is "performance". The table performance becomes rather sluggish when there are more than ~250 rows.