Share via


MethodExpression Třída

Definice

Poskytuje způsob, jak zadat vlastní dotaz LINQ, který je definován v metodě.

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
Dědičnost

Příklady

Následující příklad ukazuje, jak vyhledat pole ListPrice tabulky Products v databázi AdventureWorks pro produkty, které mají ceníkovou cenu 400 nebo více. Tento příklad ukazuje, jak vytvořit vlastní dotaz LINQ v metodě v kódu stránky a jak vyvolat metodu v ovládacím QueryExtender prvku.

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;  

    }  

Následující příklad ukazuje, jak volat metodu na stránce.

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

Poznámky

Ovládací QueryExtender prvek podporuje vlastní dotazy LINQ. Můžete definovat vlastní dotaz LINQ v metodě a použít MethodExpression možnost filtru k vyvolání dotazu v ovládacím QueryExtender prvku.

Metoda, která obsahuje vlastní dotaz LINQ, musí splňovat následující kritéria:

  • Metoda musí být statická (Shared v jazyce Visual Basic). Prvním parametrem IQueryable<T> musí být objekt nebo IEnumerable<T> . Metoda může mít více než jeden parametr.

  • Vrácená hodnota nemůže změnit IQueryable<T> typ nebo IEnumerable<T> , který je dotazován.

Vyhledá MethodExpression metodu, která obsahuje dotaz, v následujícím pořadí:

  1. Pokud je v QueryExtender ovládacím TypeName prvku zadána vlastnost, MethodExpression objekt hledá metodu v zadaném typu.

  2. Pokud zdroj dat implementuje IDynamicDataSource, metoda vyhledá metodu pro typ kontextu (DataContext nebo ObjectContext objekt.)

  3. Metoda hledá metodu v ovládacím prvku šablony, v základní třídě pro stránku nebo v uživatelském ovládacím prvku.

Třída MethodExpression je podobná CustomExpression třídě s tím rozdílem, že výraz metody je spuštěn v reakci na volání metody a vlastní výraz je spuštěn v reakci na událost.

Konstruktory

MethodExpression()

Inicializuje novou instanci MethodExpression třídy.

Vlastnosti

Context

HttpContext Získá instanci ovládacího prvku vlastníka.

(Zděděno od DataSourceExpression)
DataSource

Získá objekt zdroje dat, který je přidružen k ovládacímu prvku vlastníka.

(Zděděno od DataSourceExpression)
IgnoreIfNotFound

Získá nebo nastaví hodnotu, která označuje, zda má být výraz ignorován.

IsTrackingViewState

Získá hodnotu, která označuje, zda objekt výrazu zdroje dat sleduje změny stavu zobrazení.

(Zděděno od DataSourceExpression)
MethodName

Získá nebo nastaví název metody, která obsahuje vlastní LINQ dotaz.

Owner

Získá ovládací prvek vlastníka.

(Zděděno od DataSourceExpression)
Parameters

Získá parametry, které jsou přidruženy k tomuto DataSourceExpression objektu.

(Zděděno od ParameterDataSourceExpression)
TypeName

Získá nebo nastaví třídu, jejíž metoda obsahuje vlastní dotaz.

ViewState

Získá instanci StateBag třídy, která obsahuje aktuální informace o stavu zobrazení.

(Zděděno od DataSourceExpression)

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetQueryable(IQueryable)

Přeloží výraz pomocí zadaného IQueryable objektu.

GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
LoadViewState(Object)

Načte stav hodnot v objektu ParameterDataSourceExpression , které musí být trvalé.

(Zděděno od ParameterDataSourceExpression)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
SaveViewState()

Uloží aktuální stav zobrazení objektu ParameterDataSourceExpression .

(Zděděno od ParameterDataSourceExpression)
SetContext(Control, HttpContext, IQueryableDataSource)

Provede výraz pomocí zadaného ovládacího prvku vlastníka, kontextu a zdroje dat.

(Zděděno od ParameterDataSourceExpression)
SetDirty()

Označí DataSourceExpression objekt tak, aby jeho stav byl uložen ve stavu zobrazení.

(Zděděno od DataSourceExpression)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
TrackViewState()

Sleduje změny stavu zobrazení objektu ParameterDataSourceExpression tak, aby změny mohly být uloženy v objektu StateBag objektu.

(Zděděno od ParameterDataSourceExpression)

Explicitní implementace rozhraní

IStateManager.IsTrackingViewState

Při implementaci třídou získá hodnotu, která označuje, zda objekt výrazu zdroje dat sleduje změny stavu zobrazení.

(Zděděno od DataSourceExpression)
IStateManager.LoadViewState(Object)

Při implementaci třídou načte dříve uložený stav zobrazení objektu výrazu zdroje dat.

(Zděděno od DataSourceExpression)
IStateManager.SaveViewState()

Při implementaci třídou uloží aktuální stav zobrazení objektu DataSourceExpression .

(Zděděno od DataSourceExpression)
IStateManager.TrackViewState()

Při implementaci třídou sleduje změny stavu zobrazení objektu DataSourceExpression tak, aby změny mohly být uloženy v objektu StateBag pro objekt výrazu zdroje dat.

(Zděděno od DataSourceExpression)

Platí pro