Hi Telerik Team,
In my RadGridView I have 100 items, I'm applying filters for 2 columns.
The data is filtered and shows 2 items now.
I'm editing some columns (which are not filtered columns) and saving it.
After save, I'm calling the service to retrieve the 100 items (it means I'm refreshing the data).
The data is retrieved, but the RadGridView displays empty as the applied filter not works correctly.
It should display the same 2 records.
If I try clearing any one filter, it displays records based on 1 applied filter.
Please provide a fix for this. I want the filter to be applied after refreshing also.
Awaiting for your reply.
Thanks and Regards,
Muhammad Azhar Shah
Hi Premkumar,
Can you provide more information about the service and the approach you are using to bind the grid? Perhaps share the code that you are currently using.
Thank you in advance for your patience and cooperation.
Regards
Dimitar
Hi Dimitar,
Thank you for your reply.
I'll share some code for your better understanding; however, I cannot share the complete code.
XAML:
<telerik:RadGridView
x:Name="myRadGridView"
AutoGenerateColumns="False"
CanUserReorderColumns="True"
CanUserSortColumns="True"
GridLinesVisibility="Horizontal"
IsFilteringAllowed="True"
IsReadOnly="True"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding DataList}"
KeyboardNavigation.TabNavigation="Cycle"
RowIndicatorVisibility="Collapsed"
ShowGroupPanel="False"
ShowToolTipOnTrimmedText="True">
<telerik:RadGridView.Columns>
...
</telerik:RadGridView.Columns>
</telerik:RadGridView>
C#:
private async Task LoadData()
{
this.IsBusyIndicator = true;
this.DataList = await this.uiService.GetData(); ////This will fetch 100 items.
this.IsBusyIndicator = false;
}
private async Task SaveData(object arg)
{
this.IsBusyIndicator = true;
var operationOutcome = await this.uiService.SaveData(arg);
if (operationOutcome.Status.Equals(OperationOutcomeStatus.Success))
{
await this.LoadData();
}
this.IsBusyIndicator = false;
}
I have applied filters for 2 columns before I editing and saving the data.
In my Save method, I'm calling the LoadData() method after successful saving in DB.
The LoadData() method returns 100 items.
But already I have applied 2 filters right.
So, from the 100 items the filter should apply in client side and should display only 2 records.
But it is not happening, instead it displays empty. When I clear any one filter, I could see the data with 1 filter applied.
This is the scenario.
Please provide a fix on this.
Awaiting for your reply.
Thanks and Regards,
Muhammad Azhar Shah
Hi Premkumar,
Your approach seems ok to me. I have tested it and it works on my side. I have attached my test proejct. Could you please check it na let meknow if I am missing something?
Thank you in advance for your patience and cooperation. I am looking forward to your reply.
Thank you for your reply.
May be your sample solution is very simple.
Could you please try by having a ComboBox in CellTemplate and for the GridViewDataColumn set the DataMemberBinding="{Binding SelectedStatus.Name}".
Because we are having our gridview like this.
And please try filtering in that column and reload the data again.
<telerik:GridViewDataColumn
Width="120"
MinWidth="65"
MaxWidth="200"
DataMemberBinding="{Binding SelectedStatus.Name}"
Header="Status"
HeaderCellStyle="{StaticResource RadColumnWithBorder}"
HeaderTextTrimming="CharacterEllipsis"
HeaderTextWrapping="WrapWithOverflow">
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<telerik:RadComboBox
DisplayMemberPath="Name"
FontSize="12"
ItemsSource="{Binding Statuses}"
SelectedItem="{Binding SelectedStatus, Mode=TwoWay}" />
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
Hi Muhammad,
I have tested with this but I am getting the same results. In addition, the column type and editors do not affect the filtering which is performed directly on the data. This seems to be a very specific case. I would recommend posting a new ticket (which is a private thread) about it and attaching your project or a sample project that reproduces this. This will allow us to properly investigate the case and determine what is causing this.
Thank you in advance for your patience and cooperation.