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

How to traverse each group?

1 Answer 50 Views
Filter
This is a migrated thread and some comments may be shown as answers.
Vatsal
Top achievements
Rank 2
Vatsal asked on 28 Nov 2012, 01:56 PM
Hi,

I am using radfilter control to filter my grid. I want to traverse each group and filter of each group programmatically. Currently I am using "RadFilter1.RootGroup.Expressions" method but it shows only root group and it's filter. How do I traverse other group and it's filter. Please help.

Thanks

1 Answer, 1 is accepted

Sort by
0
Alex
Top achievements
Rank 1
answered on 02 Dec 2012, 07:06 PM
Not sure that this is the best or intended way, but seems to be working for me.


protected string TraverseFilterGroups(Telerik.Web.UI.RadFilterGroupExpressionItem groupItem)
{
    string translatedExpression = String.Empty;
 
    foreach(var child in groupItem.ChildItems)
    {
        if (child is Telerik.Web.UI.RadFilterGroupExpressionItem)
            translatedExpression += " ( " + TraverseFilterGroups((Telerik.Web.UI.RadFilterGroupExpressionItem)child) + ")";
        else
        {
            Telerik.Web.UI.RadFilterSingleExpressionItem expressionItem = (Telerik.Web.UI.RadFilterSingleExpressionItem)child;
 
            if (expressionItem.Expression.FilterFunction == Telerik.Web.UI.RadFilterFunction.EqualTo)
            {
                translatedExpression += expressionItem.Expression.FieldName + " = " + ((Telerik.Web.UI.RadFilterEqualToFilterExpression<string>)expressionItem.Expression).Value;
            }
        }
        translatedExpression += " " + groupItem.Expression.GroupOperation.ToString() + " ";
    }
 
    translatedExpression = translatedExpression.Substring(0, translatedExpression.LastIndexOf(' ', translatedExpression.Length-2));
    return translatedExpression;
}
Tags
Filter
Asked by
Vatsal
Top achievements
Rank 2
Answers by
Alex
Top achievements
Rank 1
Share this question
or