This is a migrated thread and some comments may be shown as answers.

FilterDescriptors.Clear() Problem

2 Answers 157 Views
GridView
This is a migrated thread and some comments may be shown as answers.
christine
Top achievements
Rank 1
christine asked on 28 Sep 2011, 11:05 PM

Hi,
I have two checkboxs that, when checked, apply or remove custom filters.  The filters work fine (mostly), only problem is that the first time FilterDescriptors.Clear(); is called all the rows in the grid dissapear.  On any subsequent calls it works as expected.
 
Both checkboxes call the following method:  

#region private void HandleCheckBoxFilters()
private void HandleCheckBoxFilters()
{
    bool? PaidInFullChecked = CheckBox_PaidInFull.IsChecked;
    bool? Show60PaymentsOnlyChecked = CheckBox_FixedAmount.IsChecked;
 
    //RadGridView_TrusteeLedgers.FilterDescriptors.Clear();
 
    CompositeFilterDescriptor compositeDescriptor = new CompositeFilterDescriptor();
    compositeDescriptor.LogicalOperator = FilterCompositionLogicalOperator.And;
 
    RadGridView_TrusteeLedgers.FilterDescriptors.Clear();
 
    if (PaidInFullChecked == true)
    {
        FilterDescriptor filterDescriptor_PaidInFull = new FilterDescriptor();
        filterDescriptor_PaidInFull.Member = "PaidInFull";
        filterDescriptor_PaidInFull.Operator = FilterOperator.IsEqualTo;
        filterDescriptor_PaidInFull.Value = true;
        filterDescriptor_PaidInFull.IsCaseSensitive = false;
 
        compositeDescriptor.FilterDescriptors.Add(filterDescriptor_PaidInFull);
    }
 
 
    if (Show60PaymentsOnlyChecked == true)
    {
        FilterDescriptor filterDescriptor_FixedAmount = new FilterDescriptor();
        filterDescriptor_FixedAmount.Member = "TotalRemaining";
        filterDescriptor_FixedAmount.Operator = FilterOperator.IsEqualTo;
        filterDescriptor_FixedAmount.Value = Convert.ToDecimal(60);
        filterDescriptor_FixedAmount.IsCaseSensitive = false;
 
        compositeDescriptor.FilterDescriptors.Add(filterDescriptor_FixedAmount);
    }
 
    RadGridView_TrusteeLedgers.FilterDescriptors.Add(compositeDescriptor);
 
}
#endregion

Here is my Xaml

<DockPanel  Name="DockPanel_Content_CenterDock"  HorizontalAlignment="Stretch" Margin="2" Grid.Row="2" Grid.Column="0"  >
 
    <telerik:RadBusyIndicator x:Name="RadBusyIndicator_TrusteeLedgerContent" BusyContent="Loading data...">
 
        <telerik:RadGridView Name="RadGridView_TrusteeLedgers"
                            DataLoadMode="Asynchronous"
                            IsFilteringAllowed="False"
                            ShowGroupPanel="False"         
                            telerikControls:Theming.Theme="Office_Blue"
                            EnableRowVirtualization="True"
                            AutoGenerateColumns="False"
                            SelectionUnit="FullRow"
                            SelectionMode="Single" SelectionChanged="RadGridView_TrusteeLedgers_SelectionChanged">
            <telerik:RadGridView.Columns>
                <telerik:GridViewDataColumn Header="Case Number" DataMemberBinding="{Binding CaseNumber}" Width="100" IsReadOnly="True" />
                <telerik:GridViewDataColumn Header="Trustee" DataMemberBinding="{Binding TrusteeCode}" Width="75" IsReadOnly="True" />
                <telerik:GridViewDataColumn Header="Case Title" DataMemberBinding="{Binding CaseTitle}" Width="200" IsReadOnly="True" />
                <telerik:GridViewDataColumn Header="Prev Chapter" DataMemberBinding="{Binding PreviousChapter}" Width="75" IsReadOnly="True" />
                <telerik:GridViewDataColumn Header="Chapter" DataMemberBinding="{Binding Chapter}" Width="75" IsReadOnly="True" />
                <telerik:GridViewDataColumn Header="Closed" DataMemberBinding="{Binding CaseIsClosed, Converter={StaticResource BooleanToStringConverter}}" Width="75" IsReadOnly="True"  />
                <telerik:GridViewDataColumn Header="NoticeFiled" DataMemberBinding="{Binding NoticeFiled, Converter={StaticResource BooleanToStringConverter}}" Width="75" IsReadOnly="True"/>
                <telerik:GridViewDataColumn Header="PaidInFull" DataMemberBinding="{Binding PaidInFull, Converter={StaticResource BooleanToStringConverter}}" Width="75" IsReadOnly="True" />
                <telerik:GridViewDataColumn Header="Amount" DataMemberBinding="{Binding TotalRemaining}" DataFormatString="{}{0:c}" Width="75" IsReadOnly="True" />
                <telerik:GridViewColumn Header="Voucher" >
                    <telerik:GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding VoucherRequested}" Width="75" />
                        </DataTemplate>
                    </telerik:GridViewColumn.CellTemplate>
                </telerik:GridViewColumn>
            </telerik:RadGridView.Columns>
            <telerik:RadGridView.SortDescriptors>
                <telerik:SortDescriptor Member="TransactionDate" SortDirection="Ascending"></telerik:SortDescriptor>
            </telerik:RadGridView.SortDescriptors>
            <!--<telerik:RadGridView.GroupDescriptors>
                <telerik:GroupDescriptor Member="OfficeName" SortDirection="Descending" DisplayContent="Office Name">
                    <telerik:GroupDescriptor.AggregateFunctions>
                        <telerik:SumFunction Caption="Office Total" SourceField="TotalNonRegistry" ResultFormatString="{}{0:c}"></telerik:SumFunction>
                    </telerik:GroupDescriptor.AggregateFunctions>
                </telerik:GroupDescriptor>
            </telerik:RadGridView.GroupDescriptors>-->
        </telerik:RadGridView>
 
    </telerik:RadBusyIndicator>
 
</DockPanel>

 

 

 

 

 

 

 

2 Answers, 1 is accepted

Sort by
0
Vlad
Telerik team
answered on 29 Sep 2011, 07:06 AM
Hi,

 Can you remove DataLoadMode="Asynchronous" temporary to see what will be the result?

Regards,
Vlad
the Telerik team

Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

0
christine
Top achievements
Rank 1
answered on 29 Sep 2011, 05:03 PM
That fixed the problem, thank you!
Tags
GridView
Asked by
christine
Top achievements
Rank 1
Answers by
Vlad
Telerik team
christine
Top achievements
Rank 1
Share this question
or