CustomExpression 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供一種方式,可以指定一個自訂的 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) |