MethodExpression Klas

Definitie

Biedt een manier om een aangepaste LINQ-query op te geven die in een methode is gedefinieerd.

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
Overname

Voorbeelden

In het volgende voorbeeld ziet u hoe u in het veld ListPrice van de tabel Producten in de Database AdventureWorks kunt zoeken naar producten met een catalogusprijs van 400 of meer. In dit voorbeeld ziet u hoe u een aangepaste LINQ-query maakt in een methode in paginacode en hoe u de methode in het QueryExtender besturingselement aanroept.

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;

    }

In het volgende voorbeeld ziet u hoe u de methode op de pagina aanroept.

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

Opmerkingen

Het QueryExtender besturingselement ondersteunt aangepaste LINQ-query's. U kunt een aangepaste LINQ-query definiëren in een methode en de MethodExpression filteroptie gebruiken om de query in het QueryExtender besturingselement aan te roepen.

De methode die de aangepaste LINQ-query bevat, moet voldoen aan de volgende criteria:

  • De methode moet statisch zijn (Shared in Visual Basic). De eerste parameter moet een IQueryable<T> of IEnumerable<T> object zijn. De methode kan meer dan één parameter hebben.

  • De retourwaarde kan het IQueryable<T> of IEnumerable<T> type waarop een query wordt uitgevoerd, niet wijzigen.

Hiermee MethodExpression wordt gezocht naar de methode die de query in de volgende volgorde bevat:

  1. Als een TypeName eigenschap is opgegeven in het QueryExtender besturingselement, zoekt het MethodExpression object naar de methode in het opgegeven type.

  2. Als de gegevensbron wordt geïmplementeerd IDynamicDataSource, zoekt de methode naar de methode op het contexttype (DataContext of ObjectContext object).)

  3. De methode zoekt naar de methode in een sjabloonbeheer, in de basisklasse voor de pagina of in een gebruikersbeheer.

De MethodExpression klasse is vergelijkbaar met de CustomExpression klasse, behalve dat de methode-expressie wordt uitgevoerd als reactie op een methodeaanroep en de aangepaste expressie wordt uitgevoerd als reactie op een gebeurtenis.

Constructors

Name Description
MethodExpression()

Initialiseert een nieuw exemplaar van de MethodExpression klasse.

Eigenschappen

Name Description
Context

Hiermee haalt u het HttpContext exemplaar van het eigenaarbeheer op.

(Overgenomen van DataSourceExpression)
DataSource

Hiermee haalt u het gegevensbronobject op dat is gekoppeld aan het eigenaarbeheer.

(Overgenomen van DataSourceExpression)
IgnoreIfNotFound

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de expressie moet worden genegeerd.

IsTrackingViewState

Hiermee wordt een waarde opgehaald die aangeeft of een expressieobject voor de gegevensbron de status van de weergave bijhoudt.

(Overgenomen van DataSourceExpression)
MethodName

Hiermee haalt u de naam op van de methode die een aangepaste LINQ-query bevat.

Owner

Hiermee haalt u het besturingselement van de eigenaar op.

(Overgenomen van DataSourceExpression)
Parameters

Hiermee haalt u de parameters op die aan dit DataSourceExpression object zijn gekoppeld.

(Overgenomen van ParameterDataSourceExpression)
TypeName

Hiermee haalt u de klasse op waarvan de methode de aangepaste query bevat.

ViewState

Hiermee wordt een exemplaar opgehaald van de StateBag klasse die de huidige informatie over de weergavestatus bevat.

(Overgenomen van DataSourceExpression)

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetQueryable(IQueryable)

Hiermee wordt de expressie omgezet met behulp van het opgegeven IQueryable object.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
LoadViewState(Object)

Laadt de status van de waarden in het ParameterDataSourceExpression object dat moet worden bewaard.

(Overgenomen van ParameterDataSourceExpression)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
SaveViewState()

Hiermee wordt de huidige weergavestatus van het ParameterDataSourceExpression object opgeslagen.

(Overgenomen van ParameterDataSourceExpression)
SetContext(Control, HttpContext, IQueryableDataSource)

Hiermee wordt de expressie uitgevoerd met behulp van het opgegeven eigenaarbesturingselement, de context en de gegevensbron.

(Overgenomen van ParameterDataSourceExpression)
SetDirty()

Hiermee wordt het DataSourceExpression object gemarkeerd, zodat de status ervan wordt opgeslagen in de weergavestatus.

(Overgenomen van DataSourceExpression)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)
TrackViewState()

Hiermee worden wijzigingen in de weergavestatus van het ParameterDataSourceExpression object bijgehouden, zodat de wijzigingen kunnen worden opgeslagen in het StateBag object voor het object.

(Overgenomen van ParameterDataSourceExpression)

Expliciete interface-implementaties

Name Description
IStateManager.IsTrackingViewState

Wanneer een klasse wordt geïmplementeerd, haalt u een waarde op die aangeeft of een gegevensbronexpressieobject wijzigingen in de weergavestatus bijhoudt.

(Overgenomen van DataSourceExpression)
IStateManager.LoadViewState(Object)

Wanneer deze door een klasse wordt geïmplementeerd, laadt u de eerder opgeslagen weergavestatus van het object voor de gegevensbronexpressie.

(Overgenomen van DataSourceExpression)
IStateManager.SaveViewState()

Wanneer deze wordt geïmplementeerd door een klasse, wordt de huidige weergavestatus van het DataSourceExpression object opgeslagen.

(Overgenomen van DataSourceExpression)
IStateManager.TrackViewState()

Wanneer deze door een klasse wordt geïmplementeerd, worden weergavestatuswijzigingen van het DataSourceExpression object bijgehouden, zodat de wijzigingen kunnen worden opgeslagen in het StateBag object voor het object voor de gegevensbronexpressie.

(Overgenomen van DataSourceExpression)

Van toepassing op