Data grid in-memory settings

What is the difference in the examples?

These examples show the same grid built with the four available inMemory settings. While they may look the same, look at the source to see how they require different levels of data management in regards to sorting and pagination.

The grid has levels of in-memory settings that can be set. It is in the consuming application's best interest to put as much of the data grid in memory as performance allows. Try to use the highest level inMemory="sorting" whenever possible. The following values are available.

  • undefined (default): When not in use the grid will not autodetect schemas. The sorting and pagination is the responsibility of the consuming application.
  • enhancements: Provides no in-memory operations. If set, the grid will try to autodetect schemas only based on the content currently available (the current page of data).
  • pagination: Schema detection works as above and pagination is performed in-memory. The pagination callbacks are still triggered on user interactions, but the row updates are performed by the grid.
  • sorting (suggested): Schema detection and pagination are performed as above, and sorting is applied in-memory too. The onSort callback is still called and the application must own the column sort state, but data sorting is done by the grid based on the defined and/or detected schemas.

When enabled, in-memory renders cell data off-screen and uses those values to detect schemas and perform sorting. This detaches the user experience from the raw data; the data grid never has access to the backing data, only what is returned by renderCellValue.

When in-memory is not used

When inMemory is not in use the grid will not autodetect schemas. In the below example only the amount column has a schema because it is manually set. Sorting and pagination data management is the responsibility of the consuming application. Column sorting in particular is going to be imprecise because there is no backend service to call, and data grid instead defaults to naively applying JavaScript's default array sort which doesn't work well with numeric data and doesn't sort React elements such as the links. This is a good example of what happens when you don't utilize schemas for complex data.

name
email
location
account
date
amount
phone
version

Row: 1, Column: 1:

Heaney, Vicenta Jr.

Row: 1, Column: 3:

Billychester, Wallis and Futuna

Row: 1, Column: 4:

14354446

Row: 1, Column: 5:

Mon Nov 18 2019 08:27:28 GMT+0000 (Greenwich Mean Time)

Row: 1, Column: 6:

$860.00

Row: 1, Column: 7:

672-989-4897 x41441

Row: 1, Column: 8:

7.8.6

Row: 2, Column: 1:

Feeney, Tyra DVM

Row: 2, Column: 2:

Row: 2, Column: 3:

New Rylee, Chad

Row: 2, Column: 4:

34417655

Row: 2, Column: 5:

Wed Apr 10 2019 04:35:27 GMT+0100 (British Summer Time)

Row: 2, Column: 6:

$816.00

Row: 2, Column: 7:

1-987-805-8647

Row: 2, Column: 8:

4.7.4

Row: 3, Column: 1:

Green, Sylvan Jr.

Row: 3, Column: 2:

Row: 3, Column: 3:

Braunhaven, Seychelles

Row: 3, Column: 4:

55710461

Row: 3, Column: 5:

Sun Mar 24 2019 10:28:22 GMT+0000 (Greenwich Mean Time)

Row: 3, Column: 6:

$365.00

Row: 3, Column: 7:

513.314.9177

Row: 3, Column: 8:

6.3.7

Row: 4, Column: 1:

West, Eusebio DVM

Row: 4, Column: 2:

Row: 4, Column: 3:

McLaughlintown, Guinea

Row: 4, Column: 4:

25427468

Row: 4, Column: 5:

Wed Oct 30 2019 10:58:58 GMT+0000 (Greenwich Mean Time)

Row: 4, Column: 6:

$925.00

Row: 4, Column: 7:

653.176.4370 x0705

Row: 4, Column: 8:

3.8.3

Row: 5, Column: 1:

Hamill, Marco PhD

Row: 5, Column: 2:

Row: 5, Column: 3:

New Erling, Latvia

Row: 5, Column: 4:

04905856

Row: 5, Column: 5:

Fri Jan 04 2019 23:39:09 GMT+0000 (Greenwich Mean Time)

Row: 5, Column: 6:

$956.00

Row: 5, Column: 7:

1-185-980-6810

Row: 5, Column: 8:

9.5.7

Row: 6, Column: 1:

Hickle, Ollie III

Row: 6, Column: 2:

Row: 6, Column: 3:

Aufderharchester, Lebanon

Row: 6, Column: 4:

69966457

Row: 6, Column: 5:

Fri Mar 29 2019 22:47:45 GMT+0000 (Greenwich Mean Time)

Row: 6, Column: 6:

$707.00

Row: 6, Column: 7:

(748) 455-0161 x329

Row: 6, Column: 8:

2.8.3

Row: 7, Column: 1:

Kertzmann, Cordia PhD

Row: 7, Column: 2:

Row: 7, Column: 3:

Lake Kieran, Bermuda

Row: 7, Column: 4:

15759975

Row: 7, Column: 5:

Tue Feb 19 2019 09:05:41 GMT+0000 (Greenwich Mean Time)

Row: 7, Column: 6:

$770.00

Row: 7, Column: 7:

(940) 500-0132 x695

Row: 7, Column: 8:

1.9.1

Row: 8, Column: 1:

Stokes, Deborah IV

Row: 8, Column: 3:

West Rollinbury, Peru

Row: 8, Column: 4:

21617422

Row: 8, Column: 5:

Sat Dec 22 2018 01:11:41 GMT+0000 (Greenwich Mean Time)

Row: 8, Column: 6:

$131.00

Row: 8, Column: 7:

369-576-1754

Row: 8, Column: 8:

9.9.9

Row: 9, Column: 1:

Gerhold, Ramona Jr.

Row: 9, Column: 2:

Row: 9, Column: 3:

Spencerburgh, Armenia

Row: 9, Column: 4:

68832720

Row: 9, Column: 5:

Wed Jan 23 2019 15:27:10 GMT+0000 (Greenwich Mean Time)

Row: 9, Column: 6:

$761.00

Row: 9, Column: 7:

(972) 177-0021 x2966

Row: 9, Column: 8:

3.5.8

Row: 10, Column: 1:

Breitenberg, Murray Sr.

Row: 10, Column: 2:

Row: 10, Column: 3:

Rutherfordport, Kyrgyz Republic

Row: 10, Column: 4:

93964047

Row: 10, Column: 5:

Sun Jun 02 2019 01:05:24 GMT+0100 (British Summer Time)

Row: 10, Column: 6:

$164.00

Row: 10, Column: 7:

(305) 997-0343 x9945

Row: 10, Column: 8:

1.7.1

Enhancements only in-memory

With inMemory="{{ level: 'enhancements' }}" the grid will now autodetect schemas based on the content it has available on the currently viewed page. Notice that the field list under Sort fields has detected the type of data each column contains.

name
email
location
account
date
amount
phone
version

Row: 1, Column: 1:

Jacobi, Gust I

Row: 1, Column: 2:

Row: 1, Column: 3:

Braedenport, Western Sahara

Row: 1, Column: 4:

80600853

Row: 1, Column: 5:

Wed Feb 20 2019 08:46:22 GMT+0000 (Greenwich Mean Time)

Row: 1, Column: 6:

$916.00

Row: 1, Column: 7:

288.885.7658 x94153

Row: 1, Column: 8:

0.6.7

Row: 2, Column: 1:

Graham, Mack I

Row: 2, Column: 2:

Row: 2, Column: 3:

Loweberg, Macedonia

Row: 2, Column: 4:

69862258

Row: 2, Column: 5:

Wed Nov 06 2019 06:02:21 GMT+0000 (Greenwich Mean Time)

Row: 2, Column: 6:

$502.00

Row: 2, Column: 7:

492.615.2805

Row: 2, Column: 8:

6.5.3

Row: 3, Column: 1:

Leannon, Autumn DVM

Row: 3, Column: 2:

Row: 3, Column: 3:

Row: 3, Column: 4:

85975116

Row: 3, Column: 5:

Sat Feb 02 2019 12:28:22 GMT+0000 (Greenwich Mean Time)

Row: 3, Column: 6:

$488.00

Row: 3, Column: 7:

1-053-119-9785 x7438

Row: 3, Column: 8:

1.0.2

Row: 4, Column: 1:

Schimmel, Imani III

Row: 4, Column: 2:

Row: 4, Column: 3:

Port Wiltonport, Serbia

Row: 4, Column: 4:

04617026

Row: 4, Column: 5:

Mon Jul 15 2019 06:03:56 GMT+0100 (British Summer Time)

Row: 4, Column: 6:

$901.00

Row: 4, Column: 7:

1-917-596-4054 x5708

Row: 4, Column: 8:

8.7.6

Row: 5, Column: 1:

Gislason, Merritt II

Row: 5, Column: 2:

Row: 5, Column: 3:

Bethfurt, Martinique

Row: 5, Column: 4:

57863997

Row: 5, Column: 5:

Fri May 24 2019 12:21:24 GMT+0100 (British Summer Time)

Row: 5, Column: 6:

$413.00

Row: 5, Column: 7:

745-040-2842 x7636

Row: 5, Column: 8:

6.5.1

Row: 6, Column: 1:

Shields, Susana DDS

Row: 6, Column: 3:

New Eldashire, Afghanistan

Row: 6, Column: 4:

71848931

Row: 6, Column: 5:

Tue Jun 18 2019 14:05:38 GMT+0100 (British Summer Time)

Row: 6, Column: 6:

$683.00

Row: 6, Column: 7:

1-707-045-5716

Row: 6, Column: 8:

5.6.3

Row: 7, Column: 1:

Treutel, Chaya MD

Row: 7, Column: 3:

North Gretchenhaven, Kazakhstan

Row: 7, Column: 4:

65959208

Row: 7, Column: 5:

Wed Mar 06 2019 04:38:45 GMT+0000 (Greenwich Mean Time)

Row: 7, Column: 6:

$943.00

Row: 7, Column: 7:

371.587.2190 x0532

Row: 7, Column: 8:

6.0.2

Row: 8, Column: 1:

Kautzer, Ivory MD

Row: 8, Column: 2:

Row: 8, Column: 3:

Cummeratafort, Indonesia

Row: 8, Column: 4:

92591414

Row: 8, Column: 5:

Fri Jul 19 2019 00:52:27 GMT+0100 (British Summer Time)

Row: 8, Column: 6:

$343.00

Row: 8, Column: 7:

617.047.7421 x537

Row: 8, Column: 8:

1.5.2

Row: 9, Column: 1:

Blanda, Prince II

Row: 9, Column: 2:

Row: 9, Column: 3:

Millerport, Jamaica

Row: 9, Column: 4:

24102637

Row: 9, Column: 5:

Fri Aug 16 2019 04:48:50 GMT+0100 (British Summer Time)

Row: 9, Column: 6:

$806.00

Row: 9, Column: 7:

(510) 234-0567 x71681

Row: 9, Column: 8:

6.3.6

Row: 10, Column: 1:

Lemke, Isabel I

Row: 10, Column: 2:

Row: 10, Column: 3:

Fadelstad, Mozambique

Row: 10, Column: 4:

16657100

Row: 10, Column: 5:

Thu Aug 15 2019 14:04:50 GMT+0100 (British Summer Time)

Row: 10, Column: 6:

$927.00

Row: 10, Column: 7:

1-806-043-3251 x389

Row: 10, Column: 8:

3.3.7

Pagination only in-memory

With inMemory="{{ level: 'pagination' }}" the grid will now take care of managing the data cleanup for pagination. Like before it will autodetect schemas when possible.

name
email
location
account
date
amount
phone
version

Row: 1, Column: 1:

Frami, Blaise MD

Row: 1, Column: 2:

Row: 1, Column: 3:

North Willis, Montenegro

Row: 1, Column: 4:

56202654

Row: 1, Column: 5:

Sat Jun 01 2019 15:45:00 GMT+0100 (British Summer Time)

Row: 1, Column: 6:

$112.00

Row: 1, Column: 7:

(702) 908-1492

Row: 1, Column: 8:

8.3.6

Row: 2, Column: 1:

Walsh, Alta MD

Row: 2, Column: 2:

Row: 2, Column: 3:

Row: 2, Column: 4:

44534688

Row: 2, Column: 5:

Tue Sep 24 2019 18:34:27 GMT+0100 (British Summer Time)

Row: 2, Column: 6:

$764.00

Row: 2, Column: 7:

(196) 123-4878 x528

Row: 2, Column: 8:

6.4.7

Row: 3, Column: 1:

Jerde, Herman V

Row: 3, Column: 2:

Row: 3, Column: 3:

Lake Neil, Ireland

Row: 3, Column: 4:

65502200

Row: 3, Column: 5:

Fri Aug 02 2019 00:36:40 GMT+0100 (British Summer Time)

Row: 3, Column: 6:

$517.00

Row: 3, Column: 7:

443-272-3042 x82491

Row: 3, Column: 8:

2.3.4

Row: 4, Column: 1:

Mills, Aylin PhD

Row: 4, Column: 2:

Row: 4, Column: 3:

Adrienfort, Tajikistan

Row: 4, Column: 4:

53794477

Row: 4, Column: 5:

Mon Mar 04 2019 04:40:13 GMT+0000 (Greenwich Mean Time)

Row: 4, Column: 6:

$683.00

Row: 4, Column: 7:

362.776.5314

Row: 4, Column: 8:

6.2.6

Row: 5, Column: 1:

Padberg, Isac DDS

Row: 5, Column: 3:

Lake Kamren, Brunei Darussalam

Row: 5, Column: 4:

12713757

Row: 5, Column: 5:

Sat Dec 22 2018 14:01:00 GMT+0000 (Greenwich Mean Time)

Row: 5, Column: 6:

$874.00

Row: 5, Column: 7:

405-694-3584 x9636

Row: 5, Column: 8:

1.0.5

Row: 6, Column: 1:

Treutel, Brooklyn Jr.

Row: 6, Column: 2:

Row: 6, Column: 3:

Port Misty, Vanuatu

Row: 6, Column: 4:

57012415

Row: 6, Column: 5:

Sun Jun 16 2019 15:16:48 GMT+0100 (British Summer Time)

Row: 6, Column: 6:

$208.00

Row: 6, Column: 7:

283.063.1554

Row: 6, Column: 8:

5.1.3

Row: 7, Column: 1:

Schmitt, Leonie III

Row: 7, Column: 2:

Row: 7, Column: 3:

Kuhicland, Anguilla

Row: 7, Column: 4:

21929165

Row: 7, Column: 5:

Sat Nov 16 2019 22:05:40 GMT+0000 (Greenwich Mean Time)

Row: 7, Column: 6:

$75.00

Row: 7, Column: 7:

581-415-3145 x49316

Row: 7, Column: 8:

5.3.6

Row: 8, Column: 1:

Abbott, Anissa Sr.

Row: 8, Column: 2:

Row: 8, Column: 3:

Considinechester, Nigeria

Row: 8, Column: 4:

82550816

Row: 8, Column: 5:

Thu Nov 29 2018 18:18:05 GMT+0000 (Greenwich Mean Time)

Row: 8, Column: 6:

$571.00

Row: 8, Column: 7:

(489) 863-8075 x1185

Row: 8, Column: 8:

7.4.6

Row: 9, Column: 1:

Heaney, Ayden I

Row: 9, Column: 3:

Leliaville, Vietnam

Row: 9, Column: 4:

63843842

Row: 9, Column: 5:

Sun Mar 24 2019 22:30:56 GMT+0000 (Greenwich Mean Time)

Row: 9, Column: 6:

$326.00

Row: 9, Column: 7:

(363) 517-6640

Row: 9, Column: 8:

2.7.6

Row: 10, Column: 1:

Predovic, Alvis DVM

Row: 10, Column: 2:

Row: 10, Column: 3:

New Zariaberg, Venezuela

Row: 10, Column: 4:

95775758

Row: 10, Column: 5:

Wed Jul 03 2019 15:20:50 GMT+0100 (British Summer Time)

Row: 10, Column: 6:

$686.00

Row: 10, Column: 7:

425.771.9271 x1786

Row: 10, Column: 8:

8.6.8

Sorting and pagination in-memory

With inMemory="{{ level: 'sorting' }}" the grid will now take care of managing the data cleanup for sorting as well as pagination. Like before it will autodetect schemas when possible.

name
email
location
account
date
amount
phone
version

Row: 1, Column: 1:

Hermann, Heidi DDS

Row: 1, Column: 2:

Row: 1, Column: 3:

West Santino, Lebanon

Row: 1, Column: 4:

61759853

Row: 1, Column: 5:

Sat Jun 22 2019 18:20:38 GMT+0100 (British Summer Time)

Row: 1, Column: 6:

$904.00

Row: 1, Column: 7:

604-497-9335 x560

Row: 1, Column: 8:

1.4.4

Row: 2, Column: 1:

Lindgren, Zachariah III

Row: 2, Column: 2:

Row: 2, Column: 3:

Port Rocky, Puerto Rico

Row: 2, Column: 4:

43275614

Row: 2, Column: 5:

Sat Jun 29 2019 04:23:37 GMT+0100 (British Summer Time)

Row: 2, Column: 6:

$419.00

Row: 2, Column: 7:

064.169.2608 x402

Row: 2, Column: 8:

0.2.3

Row: 3, Column: 1:

Nitzsche, Xzavier PhD

Row: 3, Column: 2:

Row: 3, Column: 3:

Row: 3, Column: 4:

13102655

Row: 3, Column: 5:

Thu Sep 26 2019 00:45:19 GMT+0100 (British Summer Time)

Row: 3, Column: 6:

$949.00

Row: 3, Column: 7:

945-440-4126

Row: 3, Column: 8:

8.8.6

Row: 4, Column: 1:

Fritsch, Everett DVM

Row: 4, Column: 3:

Eugenialand, Cyprus

Row: 4, Column: 4:

40603821

Row: 4, Column: 5:

Thu Jul 04 2019 01:39:09 GMT+0100 (British Summer Time)

Row: 4, Column: 6:

$907.00

Row: 4, Column: 7:

725.287.4985

Row: 4, Column: 8:

7.3.3

Row: 5, Column: 1:

Wilderman, Julian DVM

Row: 5, Column: 2:

Row: 5, Column: 3:

Row: 5, Column: 4:

69721463

Row: 5, Column: 5:

Sun Jan 27 2019 01:12:24 GMT+0000 (Greenwich Mean Time)

Row: 5, Column: 6:

$801.00

Row: 5, Column: 7:

762.744.2736 x294

Row: 5, Column: 8:

2.4.3

Row: 6, Column: 1:

Ledner, Lauretta PhD

Row: 6, Column: 3:

New Ressie, Uzbekistan

Row: 6, Column: 4:

18379419

Row: 6, Column: 5:

Fri Dec 07 2018 18:31:41 GMT+0000 (Greenwich Mean Time)

Row: 6, Column: 6:

$993.00

Row: 6, Column: 7:

069-369-3725

Row: 6, Column: 8:

1.7.1

Row: 7, Column: 1:

Jerde, Keara IV

Row: 7, Column: 2:

Row: 7, Column: 3:

MacGyverbury, Bermuda

Row: 7, Column: 4:

64984095

Row: 7, Column: 5:

Fri Nov 08 2019 04:47:12 GMT+0000 (Greenwich Mean Time)

Row: 7, Column: 6:

$313.00

Row: 7, Column: 7:

181-238-5576 x2756

Row: 7, Column: 8:

1.0.3

Row: 8, Column: 1:

Greenfelder, Mckenna PhD

Row: 8, Column: 2:

Row: 8, Column: 3:

McGlynnland, Chile

Row: 8, Column: 4:

53443843

Row: 8, Column: 5:

Wed Nov 27 2019 20:58:25 GMT+0000 (Greenwich Mean Time)

Row: 8, Column: 6:

$560.00

Row: 8, Column: 7:

1-866-049-0803 x90995

Row: 8, Column: 8:

1.6.6

Row: 9, Column: 1:

Hirthe, Peter IV

Row: 9, Column: 2:

Row: 9, Column: 3:

New Werner, Romania

Row: 9, Column: 4:

27493299

Row: 9, Column: 5:

Fri Jul 19 2019 05:49:25 GMT+0100 (British Summer Time)

Row: 9, Column: 6:

$904.00

Row: 9, Column: 7:

1-152-859-0702 x78295

Row: 9, Column: 8:

2.9.3

Row: 10, Column: 1:

Yost, Giovanna Jr.

Row: 10, Column: 2:

Row: 10, Column: 3:

Stoltenbergmouth, Lesotho

Row: 10, Column: 4:

31618472

Row: 10, Column: 5:

Tue Feb 19 2019 22:34:28 GMT+0000 (Greenwich Mean Time)

Row: 10, Column: 6:

$889.00

Row: 10, Column: 7:

663-444-6029 x312

Row: 10, Column: 8:

5.3.4