Sdílet prostřednictvím


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. Vlastní dotaz LINQ můžete definovat v metodě a pomocí MethodExpression možnosti filtru vyvolat dotaz 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> objekt. Metoda může mít více než jeden parametr.

  • Vrácená hodnota nemůže změnit IQueryable<T> dotazovaný typ ani IEnumerable<T> typ.

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

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

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

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

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

Konstruktory

Name Description
MethodExpression()

Inicializuje novou instanci MethodExpression třídy.

Vlastnosti

Name Description
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ík.

(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í dotaz LINQ.

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í zobrazení informace o stavu.

(Zděděno od DataSourceExpression)

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Vyřeší výraz pomocí zadaného IQueryable objektu.

GetType()

Získá Type aktuální instance.

(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 Object.

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

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

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

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

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

DataSourceExpression Označí objekt tak, aby byl jeho stav 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 StateBag v objektu objektu.

(Zděděno od ParameterDataSourceExpression)

Explicitní implementace rozhraní

Name Description
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 objektu DataSourceExpression tak, aby změny mohly být uloženy v StateBag objektu pro objekt výrazu zdroje dat.

(Zděděno od DataSourceExpression)

Platí pro