Last Updated: 07 Apr 2022 11:18 by ADMIN
Created on: 02 Aug 2021 12:44
Category: Grid
Type: Feature Request
Allow using Filter Row with Column Menu


I've been waiting for a few months now to swap to blazor, but one of the things that's currently holding us back is that the filter row can't be used together with the column menu.
I've always found this to be strange, since it's supported in the Angular and MVC versions, which we currently use.
Our users never filter via the column menu, always via the filter row. They hide/lock their columns via the column menu and sometimes sort.
This functionality is thus critical for us.

I can't find any feature request for it, nor any planned roadmap item.
Will this ever be supported because if not, we're gonna have to start looking for alternatives.

Kind regards.

Nadezhda Tacheva
Posted on: 07 Apr 2022 11:18

Hi Michal,

At this stage, the two filter modes still operate with different filter decriptors and therefore a custom approach should be used until the enhancement is live.

There are multiple options that one can accommodate based on the specific scenario. The solution you have chosen is one way to proceed. I have tested it with the latest version of Telerik UI for Blazor (currently 3.1.0) but changing the FilterMode at runtime does not seem to cause any issues on my side. Here is a runnable version of the replicated scenario - https://blazorrepl.telerik.com/cmaeYhbv13vG4jw444. You can test it and compare it to your configuration to see what might be missing. If you are still experiencing issues, you can open a dedicated ticket, so we can evaluate the use case there.

Nadezhda Tacheva
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

Posted on: 31 Mar 2022 17:19

 does some solution exists in version 3.1.0 and newer?

Lets have grid with FilterRow enabled:

1) - How to let user pick which columns want to display/hide ? (how to open column picker)2) - Is there any "command button" which opens column picker/column menu? (it will be ok, that we can place it in grid toolbar manualy or somewhere at grid scope)
3) - Alternative - if FilterRow is Enabled, do not show Filtering in ColumnMenu = Even without filtering throught ColumnMenu, it will be 90% usability improvement.
4) - Sacrifice one column which will not have filterrow input, but just ColumnMenu picker(in desktop apps its mostly top left corner of the first column in grid)

This is how we partly bypassing the current situation(But it has bug/drawback - when you switch grid mode at runtime, grouping stop working - cant drag columns to the group header)
<TelerikGrid TItem="model"
Pageable="true" @ref="gHL"

Sortable="true" Resizable="true" 
Groupable="@GridOrganize" AutoGenerateColumns="false"
ShowColumnMenu="@GridOrganize" PageSize="50" OnRead=@GReadItems
Height="calc(100vh - 80px)"
<TelerikToggleButton @bind-Selected="@GridOrganize" Title="Allow grid reorganizce">G</TelerikToggleButton>

<GridColumn Field="@nameof(VykazGModel.ID)" FieldType="@typeof(int)"  ShowFilterCellButtons="false" VisibleInColumnChooser="false" Visible="@GridOrganize"></GridColumn>.....

Suggested solution has another drawback - we cannot iterate existing columns in grid markup(So why not to use grid builtin ColumnMenu/picker, which works well):


Thanks for tips

Nadezhda Tacheva
Posted on: 14 Sep 2021 16:00

Hi Korstiaan,

Having in mind the different essence of the Angular/Jquery and Blazor, the implementation of the components and features for the corresponding suites is also distinct. So, some differences may be observed in the behavior of the various components, as for example in this case. In the Blazor Grid, both of the filter modes use separate descriptors at this stage.

As mentioned in my previous post, one of the options we are considering is unifying the filter descriptors, so both Filter Menu and Filter Row use CompositeFilterDescriptor.

That being said, thank you for providing detailed feedback on your expectations for this feature. It is valuable and will be taken into consideration once the discussions for its implementation are initiated.

Nadezhda Tacheva
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

Posted on: 09 Sep 2021 06:58

That's what I don't get about the implementation in Blazor.
In Jquery and Angular, every column implicitly used a CompositeFilterDescriptor.
If you added filters via the column menu, the filter row just gets mapped to the first FilterDescriptor of the CompositeFilterDescriptor.

Let's say we used the column menu and used only the second filter, leaving the top one empty.
The Angular/Jquery code would notice that the first one is empty and remove it when it didn't make a lot of sense, given the selected filter method (i.e. contains '' would be removed). The second filter then becomes the first, which gets mapped to the filterrow.
Also, when you then get the filters the grid is using (e.g. $(".k-grid").data("kendoGrid").dataSource.filter()), it would simplify all these CompositeFilterDescriptors to simple FilterDescriptors when applicable. 
For example, when you had the filters ([Column X] > 5 AND [Column X] < 10) AND ([Column Y] = 'T') with (...) marking the start and end of a CompositeFilterDescriptor, the service would be smart enough to simplify the first CompositeFilterDescriptor for [Column X], since both its FilterDescriptors can just be added to the top level CompositeFilterDescriptor, since they all use an "AND" condition.

Would love to have seen what is going on under the hood for blazor, but unfortunately the source code isn't public (yet).

Nadezhda Tacheva
Posted on: 30 Aug 2021 08:25

Hello Korstiaan,

By design of the Grid for Blazor, its Filter menu uses CompositeFilterDescriptors, while its Filter Row uses FilterDescriptors. Since the filter descriptors of the two modes are different they cannot work together and thus the Column menu which provides Filter menu option is not compatible with Filter Row.

As I consider allowing compatibility of Filter Row with Column menu a reasonable feature request, I raised a discussion with the development team to revise what would be the options for such implementation. At this stage we are considering a couple of approaches as follows:

  • Support Column Menu without Filter Menu but with Filter Row. The main goal here is to avoid having two filter types because the conflict comes from the different filter descriptors they use.

  • Configure the Filter Row mode to also use CompositeFilterDescriptor. Such an option would be a breaking change.

Feel free to share your thoughts on how you would expect this functionality to behave. It will be very helpful for us to see the vision of our community for possible implementation.

In the meantime, I added your vote to increase the popularity of the request as we are prioritizing the feature requests implementation based on the community interest and demand. As you are the creator of the post, you are subscribed and will receive email notifications when its status changes. This is the best way to keep in track with the progress of the feature as once we know which release will contain its implementation, we will update its status in the feedback portal and you will be notified via email accordingly.

I hope you will find the above information useful. If any further questions appear, please let us know.

Nadezhda Tacheva
Progress Telerik

Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.

Posted on: 23 Aug 2021 09:08
Would anyone be so kind to explain why blazor filter functionality differs from the other Telerik/Progress products?
I don't get why this wasn't implemented from the start.
Was/Is it because of blazor limitations?