MethodExpression Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bietet eine Möglichkeit, eine benutzerdefinierte LINQ-Abfrage anzugeben, die in einer Methode definiert ist.
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 Listenpreisfeld der Tabelle "Produkte" in der AdventureWorks-Datenbank nach Produkten durchsuchen, die einen Listenpreis von 400 oder mehr haben. In diesem Beispiel wird gezeigt, wie Sie eine benutzerdefinierte LINQ-Abfrage in einer Methode im Seitencode erstellen und wie die Methode im QueryExtender Steuerelement aufgerufen wird.
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 (
Sharedin Visual Basic) sein. Der erste Parameter muss ein IQueryable<T> oder IEnumerable<T> ein Objekt sein. Die Methode kann mehrere Parameter aufweisen.Der Rückgabewert kann den IQueryable<T> abgefragten Typ nicht IEnumerable<T> ändern.
Die MethodExpression Suche nach der Methode, die die Abfrage in der folgenden Reihenfolge enthält:
Wenn eine TypeName Eigenschaft im QueryExtender Steuerelement angegeben ist, sucht das MethodExpression Objekt nach der Methode im angegebenen Typ.
Wenn die Datenquelle implementiert IDynamicDataSourcewird, sucht die Methode nach der Methode für den Kontexttyp (DataContext oder ObjectContext Objekt).)
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 ausgeführt wird und der benutzerdefinierte Ausdruck als Reaktion auf ein Ereignis ausgeführt wird.
Konstruktoren
| Name | Beschreibung |
|---|---|
| MethodExpression() |
Initialisiert eine neue Instanz der MethodExpression-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| 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 |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob der Ausdruck ignoriert werden soll. |
| IsTrackingViewState |
Ruft einen Wert ab, der angibt, ob ein Datenquellenausdrucksobjekt seine Ansichtszustandsänderungen nachverfolgt. (Geerbt von DataSourceExpression) |
| MethodName |
Dient zum Abrufen oder Festlegen des Namens der Methode, 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 |
Dient zum Abrufen oder Festlegen der Klasse, deren Methode die benutzerdefinierte Abfrage enthält. |
| ViewState |
Ruft eine Instanz der StateBag Klasse ab, die die aktuellen Ansichtsstatusinformationen enthält. (Geerbt von DataSourceExpression) |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetQueryable(IQueryable) |
Löst den Ausdruck mithilfe des angegebenen IQueryable Objekts auf. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| LoadViewState(Object) |
Lädt den Status der Werte im ParameterDataSourceExpression Objekt, die beibehalten werden müssen. (Geerbt von ParameterDataSourceExpression) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| SaveViewState() |
Speichert den aktuellen Ansichtszustand des ParameterDataSourceExpression Objekts. (Geerbt von ParameterDataSourceExpression) |
| SetContext(Control, HttpContext, IQueryableDataSource) |
Führt den Ausdruck mithilfe des angegebenen Besitzersteuerelements, des Kontexts und der Datenquelle aus. (Geerbt von ParameterDataSourceExpression) |
| SetDirty() |
Markiert das DataSourceExpression Objekt so, dass sein Zustand im Ansichtszustand gespeichert wird. (Geerbt von DataSourceExpression) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| TrackViewState() |
Erfasst Ansichtszustandsänderungen des ParameterDataSourceExpression Objekts, sodass die Änderungen im StateBag Objekt für das Objekt gespeichert werden können. (Geerbt von ParameterDataSourceExpression) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IStateManager.IsTrackingViewState |
Wenn sie von einer Klasse implementiert wird, wird ein Wert abgerufen, der angibt, ob ein Datenquellenausdrucksobjekt seine Ansichtszustandsänderungen nachverfolgt. (Geerbt von DataSourceExpression) |
| IStateManager.LoadViewState(Object) |
Wenn sie von einer Klasse implementiert wird, wird der zuvor gespeicherte Ansichtszustand des Datenquellenausdrucksobjekts geladen. (Geerbt von DataSourceExpression) |
| IStateManager.SaveViewState() |
Wenn sie von einer Klasse implementiert wird, wird der aktuelle Ansichtsstatus des DataSourceExpression Objekts gespeichert. (Geerbt von DataSourceExpression) |
| IStateManager.TrackViewState() |
Wenn sie von einer Klasse implementiert wird, werden Ansichtsstatusänderungen des DataSourceExpression Objekts nachverfolgt, sodass die Änderungen im StateBag Objekt für das Datenquellenausdrucksobjekt gespeichert werden können. (Geerbt von DataSourceExpression) |