2011-07-22 20 views
2

は現在、私は、カスタムフィルタを作成するには、このコードを使用していラムダ式に基づいてカスタムFilterDescriptorを作成します。Telerik MVCグリッド:

gridCommand.FilterDescriptors.Add(fName); 
:このようGridCommandに追加されます

var fName = new FilterDescriptor 
{ 
    Member = "Name", 
    MemberType = typeof(string), 
    Operator = FilterOperator.Contains, 
    Value = name 
}; 

IQueryable<CD> query = ... 
if (!string.IsNullOrWhiteSpace(Artist)) 
{ 
    query = query.Where(cd => cd.Artist.Contains(Artist)); 
} 

if (!string.IsNullOrWhiteSpace(Name)) 
{ 
    query = query.Where(cd => cd.Name.Contains(Name)); 
} 


しかし、同様のLINQ、ラムダ式に基づいてフィルタを作成したいです

これを行う方法?

答えて

1

QueryableExtensions.csはTelerikからファイルでは、この拡張メソッドは、仕事をするだろう:私は本当に自動的にTelerikフィルタに基づいてLINQの式を作成したい何

/// <summary> 
/// Filters a sequence of values based on a collection of <see cref="IFilterDescriptor"/>. 
/// </summary> 
/// <param name="source">The source.</param> 
/// <param name="filterDescriptors">The filter descriptors.</param> 
/// <returns> 
/// An <see cref="IQueryable" /> that contains elements from the input sequence 
/// that satisfy the conditions specified by each filter descriptor in <paramref name="filterDescriptors" />. 
/// </returns> 
public static IQueryable Where(this IQueryable source, IEnumerable<IFilterDescriptor> filterDescriptors) { } 
+0

実例がありますか? Telerikフィルタに基づいて自動的にLINQ式を作成します。私は同じことをしようとしています。 – SventoryMang

+0

Telerikフィルタを動的LINQクエリに変換するためにhttps://github.com/StefH/KendoGridBinderExを使用しています –

0

だから、あなたは現在それをやっている方法で多くの間違ったことはありません。 linq式として追加することを決めた場合を除き、次の例を使用してください。

var query = from t in query where t.Artist.Contains(Artist) && t.Name.Contains(Name) select t; 

アーティストと名前の両方が空またはnullの場合は、とにかくすべてを返します。

+0

。 –

関連する問題