語言

CustomExpression 類別

定義

提供一種方式,可以指定一個自訂的 LINQ 查詢,並以回應事件的方式。

public ref class CustomExpression : System::Web::UI::WebControls::Expressions::ParameterDataSourceExpression
public class CustomExpression : System.Web.UI.WebControls.Expressions.ParameterDataSourceExpression
type CustomExpression = class
    inherit ParameterDataSourceExpression
Public Class CustomExpression
Inherits ParameterDataSourceExpression
繼承

範例

以下範例說明如何建立 CustomExpression 一個由控制項使用的 QueryExtender 物件。 自訂表達式呼叫 FilterProducts 方法,該方法包含自訂的 LINQ 表達式。 過濾操作的結果會顯示在控制 GridView 項中。

以下範例展示了一個包含自訂 LINQ 查詢的事件處理器。 這個表達式會過濾 AdventureWorks 資料庫中的產品表,並顯示標價大於或等於 $3,500.00 的產品。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.Expressions;
using System.Linq;

public partial class _Default : System.Web.UI.Page 
{
    protected void FilterProducts(object sender, CustomExpressionEventArgs e)
    {
        e.Query = from p in e.Query.Cast<Product>()
                  where p.ListPrice >= 3500
                  select p;
    }
}
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.Expressions
Imports System.Data.Linq

Partial Class CustomVB
    Inherits System.Web.UI.Page

    Protected Sub FilterProducts(ByVal sender As Object, ByVal e As CustomExpressionEventArgs)
        e.Query = From p In e.Query.Cast(Of Product)() _
            Where p.ListPrice >= 3500 _
            Select p
    End Sub

備註

CustomExpression這個類別會搭配QueryExtender控制系統一起使用。 這個 QueryExtender 控制項支援多種選項,可以用來篩選資料。 這個 QueryExtender 控制項支援篩選功能,讓你可以搜尋字串、在指定範圍內搜尋值、將資料表中的屬性值與指定值比較,以及排序資料。 這些選項以 LINQ 表達式形式提供於控制照中 QueryExtender 。 你可以使用這些篩選式,或提供自訂 QueryExtender 式放在控制項中。 這個 CustomExpression 類別讓你能在應用程式中指定自訂表達式,並在事件處理器中呼叫它。

Note

你可以透過 類別提供由方法呼叫的自訂查詢,而不是事件處理器 MethodExpression 。

建構函式

名稱 Description
CustomExpression()

初始化 CustomExpression 類別的新執行個體。

屬性

名稱 Description
Context

擁有 HttpContext 者實例控制權。

(繼承來源 DataSourceExpression)
DataSource

取得與擁有者控制權相關聯的資料來源物件。

(繼承來源 DataSourceExpression)
IsTrackingViewState

會取得一個值,表示資料來源的表達式物件是否正在追蹤其檢視狀態的變化。

(繼承來源 DataSourceExpression)
Owner

這樣就能取得主人的控制權。

(繼承來源 DataSourceExpression)
Parameters

取得與此 DataSourceExpression 物件相關的參數。

(繼承來源 ParameterDataSourceExpression)
ViewState

取得包含當前視圖狀態資訊的 StateBag 類別實例。

(繼承來源 DataSourceExpression)

方法

名稱 Description
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetQueryable(IQueryable)

提供存取資料來源所使用的修改過 IQueryable 的物件。

GetType()

取得目前實例的 Type。

(繼承來源 Object)
LoadViewState(Object)

載入物件中必須持久化的值 ParameterDataSourceExpression 狀態。

(繼承來源 ParameterDataSourceExpression)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
SaveViewState()

儲存物件目前的視圖狀態 ParameterDataSourceExpression 。

(繼承來源 ParameterDataSourceExpression)
SetContext(Control, HttpContext, IQueryableDataSource)

透過指定的擁有者控制、上下文及資料來源執行表達式。

(繼承來源 ParameterDataSourceExpression)
SetDirty()

標記物件 DataSourceExpression ,使其狀態會被儲存在檢視狀態。

(繼承來源 DataSourceExpression)
ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)
TrackViewState()

追蹤物件的視圖狀態變化 ParameterDataSourceExpression ,使變更能儲存在 StateBag 物件中。

(繼承來源 ParameterDataSourceExpression)

事件

名稱 Description
Querying

當資料來源值被設定時,會發生 IQueryable 。

明確介面實作

名稱 Description
IStateManager.IsTrackingViewState

當由類別實作時,會獲得一個值,指示資料來源表達式物件是否正在追蹤其檢視狀態的變化。

(繼承來源 DataSourceExpression)
IStateManager.LoadViewState(Object)

當類別實作時,會載入先前儲存的資料來源表達式物件的檢視狀態。

(繼承來源 DataSourceExpression)
IStateManager.SaveViewState()

當由類別實作時,會儲存物件目前的檢視狀態 DataSourceExpression 。

(繼承來源 DataSourceExpression)
IStateManager.TrackViewState()

當類別實作時,會追蹤物件的 DataSourceExpression 視圖狀態變化,使變更能儲存在 StateBag 資料來源表達式物件的物件中。

(繼承來源 DataSourceExpression)

適用於

另請參閱