[Data Grid Web] Filter by Value only shows first 250 options
Forge component by OutSystems R&D
Application Type
Traditional Web

When using the Filter by Value option on a column:

Only the first 250 entries are displayed in the dialog.  If there are more than 250 entries available, and the user unchecks one or more of the displayed entries, the grid then only shows the checked values from the first 250 entries, rather than all entries except the ones that are unchecked, as the user would expect.  Is there a way to remove the 250 item limit, or to make the filter work as expected?


Thanks,

Coy Kissee

(Edited to state correct filter type)

Champion

Hi Coy 

I created a sample OML file for you. This is based on official DataGrid samples and this URL

Hope it could help you.

Also, The sample is for setting a single column, setting multiple columns requires a bit of improvement.

 If you improve it, I would appreciate it if you share it here.

Kind regards,

DataGridFilterMaxValue.oml

Hello @Coy Kissee,

By default, the maxValues property is set to show only 250 values. If you need to show more than those 250, you may do so just like @Tom Zhao said by using the following code snippet:

filter.getColumnFilter('id').valueFilter.maxValues=maxFilterValues;

For more information about this property, I would recommend you to check this link - maxValues.

Best Regards,

Tiago Pereira

Tom and Tiago,

Thank you for your responses.  The changes you suggest work, but it appears that the grid control must have the "loadConfigs:false" advanced format for this to work.  With that command setting, collapsible groups ignore their start settings, and always appear expanded (although the group header has the + symbol).  Any ideas on how to handle both of these at the same time?


Thanks,

Coy Kissee

Hello @Coy Kissee,

I'm sorry you are having trouble meeting your requirements.
What happens is that your code is running before the request to set all Columns state (setColumnState, triggered by the loadConfigs) gets executed.

As a workaround, I would suggest the following:

Add some code to the Javascript of the Web Screen. You can see the sample attached to get better insight.

Note that you will need to override the loadConfigs method in order to trigger a method that will only run after loading the configurations. We are going to call it onAfterLoadConfigs in this example.

Then, you can execute your code, for instance:

GridOS.ExternalAPI.onAfterLoadConfigs = function(gridId){
    var gObj = GridOS.ComponentUtils.getGridObjectById(gridId);
    GridOS.ExternalAPI.extendFilterCombobox(gObj, gridId);
}

GridOS.ExternalAPI.extendFilterCombobox = function(gObj, gridId){
    gObj.filter.getColumnFilter('PO_No').valueFilter.maxValues = 1;
}

Finally, you will end up with something like this:

But please take into consideration that in case of an upgrade of the component you might have to redo the previous steps in order to recreate the workaround.

Hope this sample helps you,

Best Regards,

Tiago Pereira

DataGridMakeChangesAfterLoadConfig.oml

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.