12 Answers, 1 is accepted
This isn't settable via the out-of-the-box filtering UI, however you can accomplish it with a custom FilterDescriptor.
Here's an example:
<
common:TextFilterDescriptor
PropertyName
=
"Country"
Operator
=
"StartsWith"
IsCaseSensitive
=
"False"
Value
=
"En"
/>
For more information, see the Filtering documentation article as well as the Customize the Filtering UI article.
Regards,
Lance | Tech Support Engineer, Sr.
Progress Telerik
Hi Lance,
I am running into the issue with the filter being case sensitive, but your recommendation of making the property "IsCaseSensitive" to false is not working. I haven't found an issue case logged, and this comment was from over a year ago, so I am assuming no one else has ran into this issue, so I must be using it incorrectly.
Could you take a look and see what the issue might be?
<
telerikDataGrid:RadDataGrid
x:Name
=
"InventoryDataGrid"
ItemsSource
=
"{ Binding Items }"
AutoGenerateColumns
=
"False"
VerticalOptions
=
"Start"
Padding
=
"5,0"
UserEditMode
=
"Cell"
UserSortMode
=
"Auto"
UserFilterMode
=
"Auto"
Grid.Row
=
"0"
GridLinesColor
=
"LightGray"
GridLinesVisibility
=
"Vertical"
GridLinesThickness
=
"1"
Focused
=
"OnEntryFocused"
>
<
telerikDataGrid:RadDataGrid.FilterDescriptors
>
<
common:TextFilterDescriptor
PropertyName
=
"Description"
Operator
=
"Contains"
IsCaseSensitive
=
"False"
Value
=
"En"
/>
</
telerikDataGrid:RadDataGrid.FilterDescriptors
>
<
telerikDataGrid:RadDataGrid.GroupHeaderStyle
>
<
telerikDataGrid:DataGridGroupHeaderStyle
TextMargin
=
"5"
TextColor
=
"#0085CB"
BorderColor
=
"LightGray"
BorderThickness
=
"0,0,0,3"
/>
</
telerikDataGrid:RadDataGrid.GroupHeaderStyle
>
<
telerikDataGrid:RadDataGrid.AlternateRowBackgroundStyle
>
<
telerikDataGrid:DataGridBorderStyle
BackgroundColor
=
"#E8E8E8"
BorderColor
=
"LightGray"
BorderThickness
=
"1"
/>
</
telerikDataGrid:RadDataGrid.AlternateRowBackgroundStyle
>
</
telerikDataGrid:RadDataGrid
>
When I go into the datagrid and filter by the description column, the filter allows me to use a term that is within the description, but it is case sensitive.
Thanks
Hi John,
I've tested your code and it is working as expected against sample data. Here is a screenshot:
Note: Observe the filter's Value is set to "En" and it successfully matches the lowercase "en".
Further Investigation
I would love to be able to take a closer look at your scenario as assist further. Please open a Support Ticket here (you have a priority support license) and attach a small test project with a few lines of your data so we can see the behavior.
We will see your ticket come in immediately. Either I, or one of my colleagues, will follow up with you in the ticket.
Regards,
Lance | Team Lead - US DevTools Support
Progress Telerik
Thanks for the quick response Lance.
I think I might understand where I misunderstood the documentation. In your example, you are searching for a part of a term using just lowercase letters. I get the correct results if I were to do that. However, the issue I am having is if someone starts typing using all lowercase letters:
In your example, if I were to search "dive" the result "Divergent" would not show up. If I typed "Dive" it would. I just tested with my data, attached are the screenshots.
Unfiltered is my results with no filter.
farm_filtered is the results when doing a filter by "farm". Notice the results show all items with no description (another issue I need to look into).
arm_filtered is the results when doing a filter by "arm". Notice the results show all items with a description that includes "arm" including "Farms".
Hi John,
I see you've replied to this public post instead of opening a ticket. I recommended opening a ticket so that you can get the best support your license provides. For your convenience, I have opened the ticket on your behalf and moved the details over.
We do our best to get to all forum posts, but this is affected by available resources and other priority tickets. It may take a few days to start investigating and answer a forum, while a priority support ticket guarantees a response within 24 hours.
Next Steps
So that the DataGrid team can give you the best support, please add a reply to that ticket with the code you're using to add and remove the filters as the user types into your custom filter box.
If you're not familiar with the support system, you can see you ticket list here: https://www.telerik.com/account/support-tickets/my-support-tickets.
Regards,
Lance | Team Lead - US DevTools Support
Progress Telerik
I am experiencing the same result as John, where the TextFilterDescriptor does not work unless the term you are searching for matches the case exactly, even after you set the IsCaseSensitive="False".
The example he used was if you used the search term "dive", the result "Divergent" would not show up because the letter "D" was not capitalized, even when the "IsCaseSensitive="False" is set.
I used the Telerik SDK example application posted on Github to test this. I put the Filter on the Country and if I type "Sp" it will show the entries for "Spain", but if it type lowercase "sp" it does not return the entries for "Spain".
Based on that, would it be correct to say the "IsCaseSensitive" does not work as you would expect it to?
Jeremy
Hello Jeremy,
Thank you for the report. Indeed, if IsCaseSensitive is set to false, I would expect "sp" to return "Spain" in the results. I will investigate and forward to the dev team if necessary.
To get filtering behavior to work exactly like you want, you can use a Delegate descriptor instead. That will give you ultimate control over the results. Here are the relevant docs and code examples:
If you have any specific issues with your code, please open a Support Ticket here so that I can assign the team responsible for the DataGrid (please include the code you're using so we can give you a direct solution).
Regards,
Lance | Manager Technical Support
Progress Telerik
Five days of Blazor, Angular, React, and Xamarin experts live-coding on twitch.tv/CodeItLive , special prizes and more, for FREE?! Register now for DevReach 2.0(20).
Thank you Lance, I will take a look at the links provided. I appreciate it.
Jeremy
Hello Jeremy,
I've tested this in our Programmatic Filtering SDK Example with case-insensitive filter and it worked properly on my side, please take a look at the attached short screencast showing the result.
Could you elaborate more on which example you've tried this and what changes have you made?
I look forward to your reply.
Regards,
Yana
Progress Telerik
Five days of Blazor, Angular, React, and Xamarin experts live-coding on twitch.tv/CodeItLive, special prizes, and more, for FREE?! Register now for DevReach 2.0(20).
Hello Yana,
Thank you for the response. I did not try the programmatic filtering example. I tried using the FilteringUIExample from the SDK example code and added the TextFilterDescriptor, setting the IsCaseSensitive="false".
I will try filtering based on the programmatic filter example you referenced and see how that work. Thank you Yana.
Jeremy
Hello Jeremy,
Thank you for attaching the image.
FIlteringUI example shows how you can create custom UI used to filter the grid data - when app users choose filtering criteria, a TextFilterDescriptor is created based on that criteria (check TemplateColumnFilteringUI.xaml.cs file). Basically, the TextFilterDescriptor added in XAML (shown in the image) is not used in this case, that's why IsCaseSensitive setting is not applied.
You'd need to set IsCaseSensitive property of the dynamically created TextFilterDescriptor instead:
public override FilterDescriptorBase BuildDescriptor()
{
TextFilterDescriptor textDescriptor = new TextFilterDescriptor();
textDescriptor.PropertyName = this.PropertyName;
textDescriptor.Value = this.textEntry.Text;
textDescriptor.Operator = (TextOperator)this.descriptorOperatorPicker.SelectedIndex;
textDescriptor.IsCaseSensitive = false;
return textDescriptor;
}
Please give it a try and let me know if I can assist with anything else.
Regards,
Yana
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/.
Hello Yana,
I just wanted to follow up and let you know that I have tested both methods (programmatic filtering and the filteringUI) and both of them worked as expected. Thanks for your help.
Jeremy