jQWidgets Forums

jQuery UI Widgets Forums Grid EverPresentRow Doesn't Virtualize Columns

This topic contains 3 replies, has 3 voices, and was last updated by  Peter Stoev 7 years, 8 months ago.

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author

  • ChaseRLewis73003
    Participant

    I have a grid we let users import csv data we upload to our servers and let them perform actions on the data. We have a custom ever present row for presenting useful data to the client and giving them a dropdown to set data attributes. Each ever present row cell takes about 15-20ms to create. That 20ms is 95% creating a jqxDropdown with ~20 elements. 20ms x 400 = 8 seconds. 20ms x 12 or so in view 240ms which is naturally much preferred.

    However, with a custom ever present row the number of element only within the everpresentrow is not virtualized. This means performance gets destroyed when there is a large number of columns, even if there is very little data. When the grid is initialized with 300-400 columns it can take a long time to create the grid because these columns aren’t virtualized.

    Given there are columns out of view, it would make sense that it would be virtualized the same way the other columns are with onCreateEverPresentRow being called when it comes into existence. Even if this wasn’t custom just having hundreds of divs in the DOM here then updating them all would cause notable performance degradation.

    I can create a custom solution for the dropdown instead of jqxDropDown to bring that 20ms down to something lower by reusing the dropdown between elements, but virtualization would still be preferred in some way. Is there a way to mimic virtualization within the everpresentrow? This seems like a bug to be honest.

    Currently using jqxWidgets 4.2.1, but don’t see anything in the release history indicating this has been changed in a later version.


    Hristo
    Participant

    Hello ChaseRLewis73003,

    Unfortunately, we do not have ‘virtualization’ within the “everpresentrow”.
    As you say “just having hundreds of divs …” it will affect on the “performance degradation”.
    I would like to suggest you as a workaround to create all jqxDropDownList out of the Grid (above or under it), glued to each other.
    With one action you could get all chosen data in the DropDowns and add it as a new row to the Grid with addrow method.

    Best Regards,
    Hristo Hristov

    jQWidgets team
    http://www.jqwidgets.com


    ChaseRLewis73003
    Participant

    If above the grid they’d still need to be virtualized and synced to the grid scrolling in some manner, also my everpresentrow column doesn’t add data rows so that doesn’t fit as a solution. Definitely can design something, but it will be hack / workaround.

    I’d recommend since virtualization is the main draw of the jqxgrid (large amounts of data with relatively static performance) this is at least mentioned in the documentation with fairly notable text. Virtualization is what sells the grid (the reason for the good performance with lots of data), it should at least be mentioned in the documentation if a feature explicitly doesn’t support the grids most important feature. This can critically effect development to spend time on features and find out the grid has failings in certain features. Especially if it is the jqwidgets team’s decision to explicitly not support virtualization within a given feature. That makes that feature inherently unsuitable to certain types of data.

    I will look into other solutions and might have to modify the jqxgrid itself, but not supporting virtualization in some features (when basically all others do) is not a sensible design philosophy in a component like this. I hope you consider a fix for this in a future release.


    Peter Stoev
    Keymaster

    Hi ChaseRLewis73003,

    Virtualization IS supported. It IS NOT in Ever Present Row as IT cannot be as you may have custom widget in every column and this widget should be initialized. This is by design decision.

    Best Regards,
    Peter Stoev

    jQWidgets Team
    http://www.jqwidgets.com/

Viewing 4 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic.