Paging columns
TreeGrid documentation
TreeGrid can automatically split
middle columns to pages and displays them only on demand - when the page becomes visible due scroll.
new 7.0 <Cfg> int
ColPaging
[0]
Method of column paging used.
All columns are in one page. All columns are rendered on start. This means slow start and fast use.
It is good for small grids, up to about 30 columns.
Column pages are automatically created, but all are rendered on start.
It is good for medium grids, 30 - 100 columns, to let users to easy navigate between parts in grid.
It can be used also to avoid browser "Slow script" message when rendering too many rows without paging.
2 | Client paging (auto - fully done by TreeGrid) |
Column pages are automatically created.
The column page is rendered only when it is visible in window by scrolling.
It is good for large grids with more than 100 columns. All functions still work offline, include sorting, filtering, grouping, searching and calculations.
The client paging does not require any server side support.
new 9.3 <Cfg> bool
ColPagingFixed
[1]
If set to
0 (and set
ColPaging>0), it will page only variable body rows, not fixed rows.
Usable especially for spanned header or other fixed rows among column pages.
If the columns are not paged in IE8 there is a limit for number of columns 500 when WidthPad is set and up to 1000 without WidthPad set.
new 7.0 <Cfg> int
ColPageMin
[10]
Count of column in the first (left) page.
This page is rendered always on start, so it is displayed immediately with grid.
It can be set to 0 to not render any column on start.
new 7.0 <Cfg> int
ColPageLength
[10]
Count of columns per page, except the first one and the last one.
Exact count of columns in page can differ due to adding or deleting columns.
Every page must contain at least one column otherwise it is deleted.
<Cfg> int
PageTime
[200]
How long (in ms) must be page visible (by scroll) before it renders.
new 7.0 <Cfg> int
MaxColPages
[20]
Maximum rendered column pages in grid, only for
ColPaging = '2'.
When grid contains more rendered pages, the pages longer not accessed are cleared (only in HTML, pages data are
not affected).
Used to
not slow down the browser when too many HTML tags are displayed.
For large pages you can lower this value.
The actually displayed pages are never cleared.
Set it to
0 to disable clearing pages.
new 9.0 <Cfg> int
RemoveUnusedPages
[2]
If set to
0, it never removes unused root pages, child pages/parts and column pages.
If set to
2, it removes unused pages due
MaxPages,
MaxChildParts and
MaxColPages.
If set to
3, it removes also data of unused root pages or child pages.
It removes only page or child page that does not contain changed rows.
<C> int
Width
Saved to cookies, avoid it by <C WidthLap='1'/>
Column width in pixels. It is outer width including all side buttons, cell border and padding.
Set it when there are many columns in grid to speed up grid loading.
new 7.0 <C> bool
Prepared
If all row values in this column are prepared and do not need to be updated on start.
Use it when the grid has many rows to speed up grid loading.
The preparing values does these things:
- Date type cell values set as strings are converted to numbers as count of milliseconds since 1/1/1970.
- Int and Float types empty values are converted to zero if set CanEmpty.
- Select type is converted to Button='Defaults'
- For Calculated rows without CalcOrder is the CalcOrder created from all (not Prepared) columns with Formula attribute.
You can set
Prepared='1' for columns that does not contain Date, Int, Float and Select types or the Date are set as numbers or the Float and Int are not source of calculations.
Auto adding column pages
Automatic adding new column pages on scroll
new 12.0 <Cfg> bool
AutoColPages
[0]
If set, adds new column pages to the end of grid when it is scrolled right to the end of grid.
The columns gets their
Def = "Auto".
To use it, must be set also
ColPaging to 1 or 2.
Printed, exported and uploaded are columns to last not empty column, see
GetLastDataCol API method.
new 12.0 <Cfg> int
RemoveAutoColPages
[0]
If the empty added column pages will be automatically removed when the grid is scrolled up.
0 - never
1 - yes, the removed pages will be placed to
RemovedColPages and will be recreated from this stack. Useful to preserve the names of the new columns and for
Undo.
2 - yes, the removed pages will be thrown out.
The page is removed only if cells in all columns on the page and on all next pages are empty (values and
EditAttrs).
new 12.0 API event void
OnColPageAdded
(TGrid grid, int pos)
Called after new column page is added due
AutoPages.
pos is column page index in
ColNames.
new 12.0 API event bool
OnRemoveAutoColPage
(TGrid grid, string[] cols)
Called before removing given column page due
RemoveAutoColPages.
The cols is an array contains column names on the page.
Return true to not remove this page and any of the previous pages.
new 12.0 API variable string[][]
RemovedColPages
The removed pages due
RemoveAutoColPages.
Can be set to null, to permanently remove these pages.
It is two dimensional array, the first dimension are the pages and they contain the column names.
The order of the pages is backward!
The columns can be iterated in such loop:
for(var P=grid.RemovedColPages,i=P?P.length-1:-1;i>=0;i--) for(var j=0;j<P[i].length;j++){ var col = P[i][j]; ... }
new 13.2 API method void
AddAutoColPages
()
Adds one new column page. The page should be immediately shown otherwise it is later deleted.
API
new 7.0 API event void
OnRenderColPageStart
(TGrid grid, int sec)
Called before rendering of the column page.
The sec is the section index to
ColNames.
new 7.0 API event void
OnRenderColPageFinish
(TGrid grid, int sec)
Called the column page is fully rendered and ready.
The sec is the section index to
ColNames.
new 7.0 upd 11.0 API method void
AddColPage
(string[] names, string def = "C", bool updatefixed = 1)
Adds new column page to the end of variable columns.
names is list of the column names to add. It can be also number as count of the columns to add.
(since 11.0.) the individual names item can be object instead of string, with defined column attributes, it must have set at least Name attribute.
e.g. AddColPage(["Col1",{Name:"Col2",CanEdit:0},"Col3",{Name:"Col4",Def:"Special"}]);
def is name of default column to use for all the columns to fill their attributes.
updatefixed (since 11.0) if fixed rows will be refreshed (for
ColPagingFixed=0). Set it to
0 in all calls except the last one to speed up the function when adding more column pages at once.
After the method finishes, the columns are not displayed yet, so they can be changed or the row values in the columns can be filled directly.
new 11.0 API method void
RemoveColPage
(int section, int count = 1)
Removes given column page and deletes all its column from data.
section is column section number as in
ColNames.
The fixes column page (
section = 0 and
section = ColNames.length-1) cannot be removed.
The
count can be set to remove more adjacent pages at once.
new 7.0 API method void
ShowColPages
( )
Starts loading and rendering displayed column pages. Asynchronous.
Call this method if pages are not rendered automatically when you do some unusual changes in grid.
new 10.0 API method void
CreateColPages
( )
Re-creates the column pages, re-places the columns to the column pages.
You can call it after adding many new not displayed columns.
You must call
Render /
Rerender method after calling the CreateColPages.
For example how to add many columns to already rendered grid fast:
for(var i=0;i<500;i++) G.AddCol('c'+i,1,null,{Width:50,Type:'Html'}).Visible = 1;
G.CreateColPages(); G.Rerender();