QueryableFilterUserControl.GetQueryable(IQueryable) 方法

定義

從來源 IQueryable 物件取得轉換的 IQueryable 物件。

C#
public abstract System.Linq.IQueryable GetQueryable(System.Linq.IQueryable source);

參數

source
IQueryable

來源 IQueryable 物件。

傳回

來自來源 IQueryable 物件的已轉換 IQueryable 物件。

範例

這個方法會實作,以將來源 IQueryable 物件轉換成目標 IQueryable 物件。 您可能想要實作的 IQueryable 運算式範例包括依、範圍或搜尋的順序。

下列範例示範如何針對 GetQueryable 衍生自 QueryableFilterUserControl 的布林篩選實作 方法。

C#
public override IQueryable GetQueryable(IQueryable source) {  
    if (String.IsNullOrEmpty(DropDownList1.SelectedValue)) {  
        return source;  
    }  

    bool value = Convert.ToBoolean(DropDownList1.SelectedValue);  

    ParameterExpression parameterExpression =   
        Expression.Parameter(source.ElementType, "item");  
    Expression body = BuildQueryBody(  
        parameterExpression, value);  

    LambdaExpression lambda = Expression.Lambda(body,   
        parameterExpression);  
    MethodCallExpression whereCall = Expression.Call(  
        typeof(Queryable),   
        "Where",   
        new Type[] { source.ElementType },   
        source.Expression, Expression.Quote(lambda));  
    return source.Provider.CreateQuery(whereCall);  
}  

備註

如果您從 QueryableFilterUserControl 衍生控制項,則必須實作這個方法。

適用於

產品 版本
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1