Completed
Last Updated: 07 Jul 2023 07:53 by ADMIN
Release 4.4.0 (07/19/2023) (R3 PI1)
Korstiaan
Created on: 02 Aug 2021 12:44
Category: Grid
Type: Feature Request
16
Allow using Filter Row with Column Menu

Greetings!

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.

14 comments
ADMIN
Nadezhda Tacheva
Posted on: 10 Oct 2022 10:51

Hi all,

Thank you for your feedback! I've shared it with the team for consideration.

As for the column chooser, we do see value in exposing it as a separate component that can be used outside of the column level. That said, I opened a dedicated feature request on the matter:

Standalone ColumnChooser component

I opened it on Thomas's behalf as he first raised the topic. However, I added both Thomas's and Michal's votes as community members who expressed interest in this feature.

Please feel free to share any other feedback and expectations for the behavior and design of such a component in the dedicated post. For example, in both of the demos Michal shared the Grid allows opening the ColumnChooser from a button in the Toolbar. The ColumnChooser itself is rendered in a popup where the column visibility is controlled by CheckBoxes. However, in one of the demos I see that it is also possible to reorder the columns from the ColumnChooser.

It will also be useful if you can share how you'd prefer such component to be exposed - for example, on Grid level or outside of the Grid similar to the Filter component and how it can be integrated.

Sharing your vision is important to us as thus we can ensure we are meeting the community requirements. Thank you once again for being valuable members of the UI for Blazor community!

Regards,
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/.

Michal
Posted on: 03 Oct 2022 13:12

Hi Thomas,

 exactly the same mindset-pattern, which ended with current sollutions as: -> "NO GO", to let user choose/hide colums :)

Colum picker/chooser:
1) Yes, it must be INDEPENDET from any kind filtering menus

2) Yes, we must be able to store the selected columns by the user. **

3) Yes, it would be most productive way(for users and also coders in the name of flexibility), to have to "column chooser" as separate "grid command/button"(ie like a GridFilter). 
examples:
https://demos.devexpress.com/blazor/GridColumnChooser
https://blazor.syncfusion.com/demos/datagrid/column-chooser/

4)!! Bonus: Make public definition of the Grid.Columns = so we can read datafileld,id,title....  whole model of GridColumn. For the begining ReadOnly would be also nice improvement.

!!point 4) at current state, makes imposible to do our own column chooser.

**now its done by GridState()

Thomas
Posted on: 03 Oct 2022 12:04

Hi, 

For me it does not realy matter if the Filter Row uses FilterDescriptor or CompositeFilterDescriptors, I only want to be able to let the end user select what columns should be visible, independet of if the RowFilter is visible or not. There could be other reasons you are considering moving to CompositeFilterDescriptor for me that is not important.

Another option for me would be the possibilty to open the menu to select columns from the toolbar instead of from the column menu. I even think that would be better since that "select column menu" is not connected to the specific columns. I even tried to implement my own Columns chooser dialog but failed since I was not able to get the column Title from the column information in the grid, only the FieldName. And since I wanted to make a generic solution that would work anywhere i use the Grid i dropped that attempt :)

Thomas

ADMIN
Nadezhda Tacheva
Posted on: 03 Oct 2022 09:13

Hi all,

The suggested approach is a workaround option that can be used if the use case requires a Filter Row to work with Column Menu. However, as per the Grid design at this stage, the Column Menu can be used only with Filter Menu. In this scenario, Filter Row is not supported since it uses different type of FilterDescriptors.

We are considering two options for the implementation. It will be useful if you can share your feedback, so we can ensure we are meeting the community requirements. Listing the possibilities here as well:

  • Option 1: Support Column Menu without Filter Menu but with Filter Row. In this case, the two filtering options will continue to use different filter descriptors but the Column Menu will be configured to support Filter Row with FilterDescriptors. Currently, it uses Filter Menu with CompositeFilterDescriptors. This, however, would mean that the Column Menu will no longer support Filter Menu, so please take that into consideration.

  • Option 2: Configure the Filter Row mode to also use CompositeFilterDescriptor. Such an option would be a breaking change and could be targeted no earlier than UI for Blazor 4.0.0.

Apart from that, it is important to vote for the request since we are prioritizing such enhancements based on the community demand. I see that Dennis's vote was missing, so I added it. You may also subscribe for the item, so you will receive status updates. This is the best way to follow the progress of the feature.

Regards,
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/.

Dennis
Posted on: 26 Sep 2022 20:27
Can you tell me when this is targeted for correction?  I might be inclined to wait for a fix rather than implement a toggle type of work-around.
Thomas
Posted on: 26 Sep 2022 13:27

Sure we can use a toggle button to walk around the strange implementation. But still it is not so easy to explan that strange behavior for our customers.

When a customer want to use row filter they can not select what columns to be visible. To be able to do that they first need to hide the row filter so the column menu is visiable, then they can select columns and then they have to activate the row filter again.

I can't understand why you have implemented the Blazor version of the Grid in this strange way.

ADMIN
Nadezhda Tacheva
Posted on: 26 Sep 2022 13:21

Hi Thomas,

Once the ColumnMenu is enabled, the Grid is prepared to work with FilterMenu. Even if you disable the filtering through the GridColumnMenuSettings and enable FilterRow on Grid level, the component still expects CompositeFilterDescriptor while the FilterRow works with FilterDescriptor. You can explore the difference in this Filter Descriptors section.

By the time the enhancement is implemented, you may try using the approach that Michal suggested (example link listed in my previous post) - toggling the ColumnMenu, so you can use the FilterRow when the menu is disabled.

Regards,
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/.

Thomas
Posted on: 20 Sep 2022 08:42

Hi,

I understand that the combination of different filter descriptors might be a problem. But still it is importen for us to let the user use RowFilters AND be able to select columns at the same time.

What I dont understand is why we can't use RowFilters when we have disabled the Filter menu item in the Column menu with the following.

    <GridSettings>
        <GridColumnMenuSettings FilterMode="ColumnMenuFilterMode.None" />
    </GridSettings>

It should be easy for you to allow RowFilters togheter with the column menu, atleast when Filters is disable din the column menu.

 

ADMIN
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.

Regards,
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.

Michal
Posted on: 31 Mar 2022 17:19

Hi,
 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"
FilterMode="@((GridOrganize)?GridFilterMode.FilterMenu:GridFilterMode.FilterRow)"
ShowColumnMenu="@GridOrganize" PageSize="50" OnRead=@GReadItems
Height="calc(100vh - 80px)"
><GridToolBar>
<TelerikToggleButton @bind-Selected="@GridOrganize" Title="Allow grid reorganizce">G</TelerikToggleButton>

<GridToolBar>
<GridColumns>
<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):

https://feedback.telerik.com/blazor/1450105-column-chooser
https://www.telerik.com/forums/separate-columnchooser-button


Thanks for tips

ADMIN
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.

Regards,
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.

Korstiaan
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).

ADMIN
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.

Regards,
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/.

Korstiaan
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?