Reg: Filters

 When a filter is applied to the data in the grid, it takes time to load. I want to avoid any user interaction while data is loading in the grid.

–> Is there an event which can notify the finishing of data load in grid?

You may try to use the onXLE event:
docs.dhtmlx.com/api__dhtmlxgrid_onxle_event.html

Thanks for your reply. Unfortunately, my event doesn’t get fired after data loading is done.
Following is what I am trying to do:

myGrid.attachEvent(“onXLE”, function () { alert(“Finish Data loading”); });

Steps to reproduce original issue:

– Our grid has a lot of rows (close to 100000).
– User starts typing in to a text filter box. This filtering takes some time to load all the data.
– While rows are being added in grid user types in another filter box which for another column.

Result:
Since the previous filter wasn’t done loading filtered rows. Grid will first show the rows filtered by second filter and then go back to loading the rows of the first filter.

Example: If first filter would have shown 500 and second zero rows. After finishing the above mentioned steps we will have status that zero rows are present in the grid, but essentially user will see 500 rows.

As a workaround for the problem I was trying to stop user interaction when grid is loading rows.

Please Advise.

You may use onXLS/onXLE events to control if the data is started to load or loaded to the grid cover on that period a grid with some container.
Here you can find an example:
dhtmlx.com/docs/products/dhtmlxG … ation.html

Thank you.

Is this scenario possible:

  1. User starts the filter on first column.
  2. While data is loading user starts the filter on second column.
    – Currently, it fails to render data from both filters( should have applied “AND logic”).
  3. We want to restart filtering on the last data if loading is not finished with all the filters (with AND LOGIC).

onXLE & onXLS doesn’t get fired when data is filtered. Following are the two scenarios where it works:

  1. When data is loaded in the grid during initialization.
  2. When data is grouped.

Is there a way to find out when data is done loading after applying filter?

When I tested group again, it turns out that only load function triggers XLE and XLS event. I couldn’t find any event which would tell that data is done loading after we selected groupby.

onXLS/onXLE events occur each time when data is loaded in the grid.
Events will not be triggered for client-side filtering, but will be triggered for server-side filtering ( as in second case, data reloaded from a server side )

  1. User starts the filter on first column.
  2. While data is loading user starts the filter on second column.

Can you reconstruct the logic with default samples of server-side filtering? As far as I can see, the client side sends the second request if user continues typing, or select value in the second filter if data is not received from the server side yet. ( above assumes that you are using all filters in server-filtering mode, mixing server-side filters and client side filters may will not work correctly in the above case )

Thanks for your reply.

We use following functions to filter data with smartrendering ON:

  1. myGrid.filterBy(0,"");
  2. myGrid.filterByAll();

–> Our data is stored in json file within the folder.

Are these considered as client side or server side filtering methods?

We turn OFF smartrendering when we do following:
– Group Data (Smartrendering is always OFF)
– Try to filter data
Note: In this case grouping takes time to add all the rows and if user tries to add another filter the data doesn’t load correctly.

Unfortunately the filtering of the grid in the grouped state is not supported.

Is there any plan to include this in future releases?

Unfortunately such feature is not planning.
Filtering the grouped grid will break the grouping.