Please help test v2.1 with virtual rendering for columns.

1,807 views
Skip to first unread message

Tin

unread,
Jul 6, 2012, 5:54:35 PM7/6/12
to slic...@googlegroups.com
Hey guys,

I have finished implementing virtual column rendering (in addition to rows) for v2.1 and I need your help testing it!  Please test it out in your app and let me know if you hit any issues (log them on GitHub).


Updated spreadsheet example with 100 columns - http://mleibman.github.com/SlickGrid/examples/example-spreadsheet.html

Overview:
This commit brings virtual rendering to grid columns in addition to already virtualized rows.  This significantly speeds up the rendering for grids with large number of rows (more than two horizontal pages worth), makes the DOM tree much more lean, and leaves a more"performance headroom" for the actual application.  Whereas before, 100 columns slowed SlickGrid down considerably, it is now able to handle a 1'000 columns with ease.  Once the actual column headers are rewritten to do virtual rendering as well, that number will increase another order of magnitude.

Things to look for when testing:
- Async post rendering.
- Keyboard navigation.
- Selection / active cell management.
- Column manipulation (resize / reorder / change columns / autosize).
- Event handling.

Also, grid.getCellNode() may now return null for cells that are outside the viewport, so make sure your code can handle it (technically, it did that before already, but only when the whole row was outside the viewport; not it does that for individual cells as well).



carlos

unread,
Sep 11, 2012, 3:01:08 AM9/11/12
to slic...@googlegroups.com
Hi,

I have noticed that latest scroll method included in 2.0.2 version,  scrollRowToTop(row), and latest scrollTo(y) changes are not included in 2.1 version. I've just downloaded 2.1.20120908 version via NuGet Packages plugin for VS2010.

Alex Sielicki

unread,
Oct 30, 2012, 6:48:20 PM10/30/12
to slic...@googlegroups.com
Thanks for doing this work. I've been waiting for virtual column rendering months ago and it's finally here!

A few months ago I integrated an older version of SlickGrid (2.0.x) into an application but now want to take advantage of virtual column rendering. Do I need to change anything to make this work? I use a custom AJAX data store implementation to retrieve row data on the fly. Do I need to modify this somehow? I think it's currently retrieving all columns for each row it needs, but this might not make sense with the new virtual column code. I imagine it should just retrieve the columns that are visible?

We have instances where there are thousands of rows and other instances where there are hundreds or thousands of columns. SlickGrid has been a great help so far, and I hope we can take advantage of the new column virtualization to make it scale to all our data.

Thanks,
Alex

Eric Miller

unread,
Jan 23, 2014, 12:26:14 PM1/23/14
to slic...@googlegroups.com
It looks like column virtualization may have an issue when the grid is placed in a flexbox context.

If the layout is like this:

  • flex-container (display:flex)
    • side nav (width:200px, min-width:200px)
    • main area that holds the grid (flex-grow:1)
This layout holds open 200px for the nav and grows the main area to fill the remaining space. Slickgrid doesn't draw quite enough columns though. It skips the last 1 or 2. The wider you make the window the more exacerbated the issue becomes.

I was actually looking for a switch to turn off column rendering. I can also make an isolated recreation of this if you're interested in looking at it, Tin.

Eric Miller

unread,
Jan 23, 2014, 12:27:24 PM1/23/14
to slic...@googlegroups.com
EDIT: looking for a switch to turn off column virtualization, not rendering :)

Michael Leibman

unread,
Jan 23, 2014, 1:12:30 PM1/23/14
to slickgrid
Can you post a repro test case on jsfiddle.net or similar that demonstrates the issue?


--
You received this message because you are subscribed to the Google Groups "SlickGrid" group.
To unsubscribe from this group and stop receiving emails from it, send an email to slickgrid+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Eric Miller

unread,
Jan 23, 2014, 5:15:50 PM1/23/14
to slic...@googlegroups.com
Posted it here: http://plnkr.co/edit/FJiXbXiYlbg3cMGr1Mwz?p=preview

To re-create:
  1. Load the preview
  2. See that all displays well
  3. Grab the center dividing bar and grow the width of the preview pane to about double size
  4. Note that columns on the right aren't rendered (although virtualization tracks, you can see it rendering cols)
I noticed that it's exaggerated with a larger fixed width "nav" area, and it only happens on subsequent resizes, not initial load.
It isn't only window resize that would cause it, also if you had a sidebar that could be in either a collapsed or open state, this resize of the flex container messes it up, too.
It might have to do with the timing of when the flex box size is set VS when the JS measures its container size.

Michael Leibman

unread,
Jan 23, 2014, 5:52:19 PM1/23/14
to slickgrid
Ah, the grid doesn't realize that the dimensions of the container have changed.  Just call grid.resizeCanvas() after the container has resized.


--

Griselda Berenice Diaz Perez

unread,
Jan 30, 2014, 9:01:32 PM1/30/14
to slic...@googlegroups.com
Hi Tin,

 I'm trying to implements SlickGrid with frozen Column, but I lost my data of frozen columns after sort the left side depending on the size of my container, My grid has 60 columns in a containter of 1024px, the total px of the columns is 5097px  so i can´t sort o search without lost data in frozen columns. Could you give a glue to resolve my problem?

Thanks in adnance 

El contenido de esta comunicación electrónica no se considera oferta o acuerdo de voluntades, salvo que sea suscrito por firma autógrafa del representante legal de Pendulum Associates. El contenido de esta comunicación es confidencial para uso exclusivo del destinatario, por lo que se prohíbe su divulgación total o parcial a cualquier tercero no autorizado.

The content of this electronic communication is not to be considered as an offer, proposal, or agreement unless it is confirmed in a document duly signed by the Pendulum Associates legal representative. The content of this communication is confidential and for the exclusive use of the addressee. Its total or partial disclosure to any unauthorized third party is strictly forbidden.

Pendulum Associates Buscamos Oportunidades | Ofrecemos Soluciones
Reply all
Reply to author
Forward
0 new messages