MethodExpression Klasse

Definition

Bietet die Möglichkeit, eine benutzerdefinierte LINQ-Abfrage anzugeben, die in einer Methode definiert wird.

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
Vererbung

Beispiele

Das folgende Beispiel zeigt, wie Sie das Feld ListPrice der Tabelle Products in der AdventureWorks-Datenbank nach Produkten durchsuchen, deren Listenpreis mindestens 400 beträgt. In diesem Beispiel wird gezeigt, wie Sie eine benutzerdefinierte LINQ-Abfrage in einer Methode im Seitencode erstellen und die -Methode im QueryExtender -Steuerelement aufrufen.

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;  

    }  

Das folgende Beispiel zeigt, wie die -Methode auf der Seite aufgerufen wird.

<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>  

Hinweise

Das QueryExtender Steuerelement unterstützt benutzerdefinierte LINQ-Abfragen. Sie können eine benutzerdefinierte LINQ-Abfrage in einer Methode definieren und die MethodExpression Filteroption verwenden, um die Abfrage im QueryExtender Steuerelement aufzurufen.

Die Methode, die die benutzerdefinierte LINQ-Abfrage enthält, muss die folgenden Kriterien erfüllen:

  • Die Methode muss statisch sein (Shared in Visual Basic). Der erste Parameter muss ein - oder IEnumerable<T> -IQueryable<T>Objekt sein. Die -Methode kann über mehrere Parameter verfügen.

  • Der Rückgabewert kann den IQueryable<T> abgefragten Typ oder IEnumerable<T> nicht ändern.

Sucht MethodExpression in der folgenden Reihenfolge nach der -Methode, die die Abfrage enthält:

  1. Wenn eine TypeName -Eigenschaft im QueryExtender -Steuerelement angegeben ist, sucht das MethodExpression Objekt nach der -Methode im angegebenen Typ.

  2. Wenn die Datenquelle implementiert IDynamicDataSource, sucht die -Methode nach der -Methode für den Kontexttyp (DataContext oder ObjectContext das -Objekt).)

  3. Die -Methode sucht nach der -Methode in einem Vorlagensteuerelement, in der Basisklasse für die Seite oder in einem Benutzersteuerelement.

Die MethodExpression -Klasse ähnelt der CustomExpression -Klasse, mit der Ausnahme, dass der Methodenausdruck als Reaktion auf einen Methodenaufruf und der benutzerdefinierte Ausdruck als Reaktion auf ein Ereignis ausgeführt wird.

Konstruktoren

MethodExpression()

Initialisiert eine neue Instanz der MethodExpression-Klasse.

Eigenschaften

Context

Ruft die HttpContext-Instanz des Besitzersteuerelements ab.

(Geerbt von DataSourceExpression)
DataSource

Ruft das Datenquellenobjekt ab, das dem Besitzersteuerelement zugeordnet ist.

(Geerbt von DataSourceExpression)
IgnoreIfNotFound

Ruft einen Wert ab, der angibt, ob der Ausdruck ignoriert werden soll, oder legt ihn fest.

IsTrackingViewState

Ruft einen Wert ab, der angibt, ob die Änderungen des Ansichtszustands durch ein Datenquellen-Ausdrucksobjekt verfolgt werden.

(Geerbt von DataSourceExpression)
MethodName

Ruft den Namen der Methode ab, die eine benutzerdefinierte LINQ-Abfrage enthält.

Owner

Ruft das Besitzersteuerelement ab.

(Geerbt von DataSourceExpression)
Parameters

Ruft die Parameter ab, die diesem DataSourceExpression-Objekt zugeordnet sind.

(Geerbt von ParameterDataSourceExpression)
TypeName

Ruft die Klasse ab, deren Methode die benutzerdefinierte Abfrage enthält, oder legt diese fest.

ViewState

Ruft eine Instanz der StateBag-Klasse ab, die die aktuellen Informationen zum Ansichtszustand enthält.

(Geerbt von DataSourceExpression)

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetQueryable(IQueryable)

Löst den Ausdruck mithilfe des angegebenen IQueryable-Objekts auf.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
LoadViewState(Object)

Lädt den Zustand der beizubehaltenden Werte im ParameterDataSourceExpression-Objekt.

(Geerbt von ParameterDataSourceExpression)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
SaveViewState()

Speichert den aktuellen Ansichtszustand des ParameterDataSourceExpression-Objekts.

(Geerbt von ParameterDataSourceExpression)
SetContext(Control, HttpContext, IQueryableDataSource)

Führt den Ausdruck mit dem angegebenen Besitzersteuerelement, dem angegebenen Kontext und der angegebenen Datenquelle aus.

(Geerbt von ParameterDataSourceExpression)
SetDirty()

Markiert das DataSourceExpression-Objekt, sodass sein Zustand im Ansichtszustand gespeichert wird.

(Geerbt von DataSourceExpression)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
TrackViewState()

Verfolgt Änderungen des Ansichtszustands des ParameterDataSourceExpression-Objekts, sodass die Änderungen im StateBag-Objekt für das Objekt gespeichert werden können.

(Geerbt von ParameterDataSourceExpression)

Explizite Schnittstellenimplementierungen

IStateManager.IsTrackingViewState

Ruft bei der Implementierung durch eine Klasse einen Wert ab, der angibt, ob die Änderungen des Ansichtszustands durch ein Datenquellen-Ausdrucksobjekt verfolgt werden.

(Geerbt von DataSourceExpression)
IStateManager.LoadViewState(Object)

Bei einer Implementierung durch eine Klasse wird der zuvor gespeicherte Ansichtszustand des Datenquellen-Ausdrucksobjekts geladen.

(Geerbt von DataSourceExpression)
IStateManager.SaveViewState()

Speichert bei der Implementierung durch eine Klasse den aktuellen Ansichtszustand des DataSourceExpression-Objekts.

(Geerbt von DataSourceExpression)
IStateManager.TrackViewState()

Verfolgt bei der Implementierung durch eine Klasse die Änderungen des Ansichtszustands des DataSourceExpression-Objekts, sodass die Änderungen im StateBag-Objekt für das Datenquellen-Ausdrucksobjekt gespeichert werden können.

(Geerbt von DataSourceExpression)

Gilt für: