MethodExpression Klasa

Definicja

Umożliwia określenie niestandardowego zapytania LINQ zdefiniowanego w metodzie.

public ref class MethodExpression : System::Web::UI::WebControls::Expressions::ParameterDataSourceExpression
public class MethodExpression : System.Web.UI.WebControls.Expressions.ParameterDataSourceExpression
type MethodExpression = class
    inherit ParameterDataSourceExpression
Public Class MethodExpression
Inherits ParameterDataSourceExpression
Dziedziczenie

Przykłady

Poniższy przykład pokazuje, jak przeszukać pole ListPrice tabeli Products w bazie danych AdventureWorks dla produktów, które mają Cennik 400 lub więcej. Ten przykład pokazuje, jak utworzyć niestandardowe zapytanie LINQ w metodzie w kodzie strony i jak wywołać metodę w QueryExtender kontrolce.

Public Shared Function FilterStandardPrice(ByVal query As _  
        IQueryable(Of Product)) As IQueryable(Of Product)  
        Return From p In query _  
            Where p.ListPrice >= 400 _  
            Select p  
    End Function  
public static IQueryable<Product>   
        FilterStandardPrice(IQueryable<Product> query)  
{  
        return from p in query  
                  where p.ListPrice >= 400  
                  select p;  

    }  

Poniższy przykład pokazuje, jak wywołać metodę na stronie.

<html>  
<head runat="server">  
  <title>Custom Filter</title>  
</head>  
<body>  
  <form id="form1" runat="server">  
    <asp:LinqDataSource ID="LinqDataSource1" runat="server"   
        ContextTypeName="AdventureworksDataContext" EntityTypeName=""   
        TableName="Products">  
    </asp:LinqDataSource>  

    <asp:QueryExtender ID="QueryExtender1" runat="server"   
        TargetControlID="LinqDataSource1">  
      <asp:MethodExpression MethodName="FilterStandardPrice" >  
      </asp:MethodExpression>  
    </asp:QueryExtender>  

    <asp:GridView ID="GridView1" runat="server"   
        DataSourceID="LinqDataSource1"   
        DataKeyNames="ProductID"   
    </asp:GridView>  
  </form>  
</body>  
</html>  

Uwagi

QueryExtenderKontrolka obsługuje niestandardowe zapytania LINQ. Można zdefiniować niestandardowe zapytanie LINQ w metodzie i użyć MethodExpression opcji filtru, aby wywołać zapytanie w QueryExtender kontrolce.

Metoda, która zawiera niestandardowe zapytanie LINQ, musi spełniać następujące kryteria:

  • Metoda musi być statyczna ( Shared w Visual Basic). Pierwszy parametr musi być IQueryable<T> IEnumerable<T> obiektem lub. Metoda może mieć więcej niż jeden parametr.

  • Wartość zwracana nie może zmienić IQueryable<T> typu lub IEnumerable<T> , który jest wysyłany do zapytania.

MethodExpressionWyszukuje metodę, która zawiera zapytanie w następującej kolejności:

  1. Jeśli TypeName Właściwość jest określona w QueryExtender kontrolce, MethodExpression obiekt szuka metody w określonym typie.

  2. Jeśli źródło danych implementuje metodę IDynamicDataSource , metoda szuka metody dla typu kontekstu ( DataContext lub ObjectContext obiektu).

  3. Metoda poszukuje metody w kontrolce szablonu, w klasie podstawowej strony lub w kontrolce użytkownika.

MethodExpressionKlasa jest taka sama jak CustomExpression Klasa, z tą różnicą, że wyrażenie metody jest wykonywane w odpowiedzi na wywołanie metody, a wyrażenie niestandardowe jest wykonywane w odpowiedzi na zdarzenie.

Konstruktory

MethodExpression()

Inicjuje nowe wystąpienie klasy MethodExpression.

Właściwości

Context

Pobiera HttpContext wystąpienie kontrolki właściciela.

(Odziedziczone po DataSourceExpression)
DataSource

Pobiera obiekt źródła danych, który jest skojarzony z kontrolą właściciela.

(Odziedziczone po DataSourceExpression)
IgnoreIfNotFound

Pobiera lub ustawia wartość wskazującą, czy wyrażenie ma być ignorowane.

IsTrackingViewState

Pobiera wartość, która wskazuje, czy obiekt wyrażenia źródła danych śledzi zmiany stanu widoku.

(Odziedziczone po DataSourceExpression)
MethodName

Pobiera lub ustawia nazwę metody, która zawiera niestandardowe zapytanie LINQ.

Owner

Pobiera kontrolę właściciela.

(Odziedziczone po DataSourceExpression)
Parameters

Pobiera parametry, które są skojarzone z tym DataSourceExpression obiektem.

(Odziedziczone po ParameterDataSourceExpression)
TypeName

Pobiera lub ustawia klasę, której metoda zawiera zapytanie niestandardowe.

ViewState

Pobiera wystąpienie StateBag klasy, która zawiera informacje o bieżącym stanie widoku.

(Odziedziczone po DataSourceExpression)

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetQueryable(IQueryable)

Rozpoznaje wyrażenie przy użyciu określonego IQueryable obiektu.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
LoadViewState(Object)

Ładuje stan wartości w ParameterDataSourceExpression obiekcie, który musi być utrwalony.

(Odziedziczone po ParameterDataSourceExpression)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
SaveViewState()

Zapisuje bieżący stan widoku ParameterDataSourceExpression obiektu.

(Odziedziczone po ParameterDataSourceExpression)
SetContext(Control, HttpContext, IQueryableDataSource)

Wykonuje wyrażenie przy użyciu określonej kontrolki właściciela, kontekstu i źródła danych.

(Odziedziczone po ParameterDataSourceExpression)
SetDirty()

Oznacza DataSourceExpression obiekt tak, aby jego stan został zapisany w stanie widoku.

(Odziedziczone po DataSourceExpression)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TrackViewState()

Śledzi zmiany stanu widoku obiektu, dzięki czemu zmiany ParameterDataSourceExpression mogą być przechowywane w StateBag obiekcie dla obiektu.

(Odziedziczone po ParameterDataSourceExpression)

Jawne implementacje interfejsu

IStateManager.IsTrackingViewState

W przypadku zaimplementowania przez klasę pobiera wartość, która wskazuje, czy obiekt wyrażenia źródła danych śledzi zmiany stanu widoku.

(Odziedziczone po DataSourceExpression)
IStateManager.LoadViewState(Object)

W przypadku zaimplementowania przez klasę program ładuje wcześniej zapisany stan widoku obiektu wyrażenia źródła danych.

(Odziedziczone po DataSourceExpression)
IStateManager.SaveViewState()

W przypadku zaimplementowania przez klasę zapisuje bieżący stan widoku DataSourceExpression obiektu.

(Odziedziczone po DataSourceExpression)
IStateManager.TrackViewState()

Gdy są implementowane przez klasę, śledzi zmiany stanu widoku obiektu, dzięki czemu zmiany mogą być przechowywane w obiekcie dla DataSourceExpression StateBag obiektu wyrażenia źródła danych.

(Odziedziczone po DataSourceExpression)

Dotyczy