Export (0) Print
Expand All

MethodExpression Class

Provides a way to specify a custom LINQ query that is defined in a method.

Namespace:  System.Web.UI.WebControls.Expressions
Assembly:  System.Web.Extensions (in System.Web.Extensions.dll)

public class MethodExpression : ParameterDataSourceExpression

The MethodExpression type exposes the following members.

  NameDescription
Public methodMethodExpressionInitializes a new instance of the MethodExpression class.
Top

  NameDescription
Protected propertyContextGets the HttpContext instance of the owner control. (Inherited from DataSourceExpression.)
Public propertyDataSourceGets the data source object that is associated with the owner control. (Inherited from DataSourceExpression.)
Public propertyIgnoreIfNotFoundGets or sets a value that indicates whether the expression should be ignored.
Protected propertyIsTrackingViewStateGets a value that indicates whether a data source expression object is tracking its view state changes. (Inherited from DataSourceExpression.)
Public propertyMethodNameGets or sets the name of the method that contains a custom LINQ query.
Protected propertyOwnerGets the owner control. (Inherited from DataSourceExpression.)
Public propertyParametersGets the parameters that are associated with this DataSourceExpression object. (Inherited from ParameterDataSourceExpression.)
Public propertyTypeNameGets or sets the class whose method contains the custom query.
Protected propertyViewStateGets an instance of the StateBag class that contains the current view state information. (Inherited from DataSourceExpression.)
Top

  NameDescription
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetQueryableResolves the expression by using the specified IQueryable object. (Overrides DataSourceExpression.GetQueryable(IQueryable).)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodLoadViewStateLoads the state of the values in the ParameterDataSourceExpression object that must be persisted. (Inherited from ParameterDataSourceExpression.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodSaveViewStateSaves the current view state of the ParameterDataSourceExpression object. (Inherited from ParameterDataSourceExpression.)
Public methodSetContextExecutes the expression by using the specified owner control, context, and data source. (Inherited from ParameterDataSourceExpression.)
Public methodSetDirtyMarks the DataSourceExpression object so that its state will be saved in view state. (Inherited from DataSourceExpression.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Protected methodTrackViewStateTracks view-state changes of the ParameterDataSourceExpression object so that the changes can be stored in the StateBag object for the object. (Inherited from ParameterDataSourceExpression.)
Top

  NameDescription
Explicit interface implemetationPrivate propertyIStateManager.IsTrackingViewStateWhen implemented by a class, gets a value that indicates whether a data source expression object is tracking its view state changes. (Inherited from DataSourceExpression.)
Explicit interface implemetationPrivate methodIStateManager.LoadViewStateWhen implemented by a class, loads the previously saved view state of the data source expression object. (Inherited from DataSourceExpression.)
Explicit interface implemetationPrivate methodIStateManager.SaveViewStateWhen implemented by a class, saves the current view state of the DataSourceExpression object. (Inherited from DataSourceExpression.)
Explicit interface implemetationPrivate methodIStateManager.TrackViewStateWhen implemented by a class, tracks view state changes of the DataSourceExpression object so that the changes can be stored in the StateBag object for the data source expression object. (Inherited from DataSourceExpression.)
Top

The QueryExtender control supports custom LINQ queries. You can define a custom LINQ query in a method and use the MethodExpression filter option to invoke the query in the QueryExtender control.

The method that contains the custom LINQ query must meet the following criteria:

The MethodExpression searches for the method that contains the query in the following order:

  1. If a TypeName property is specified in the QueryExtender control, the MethodExpression object looks for the method in the specified type.

  2. If the data source implements IDynamicDataSource, the method looks for the method on the context type (DataContext or ObjectContext object.)

  3. The method looks for the method in a template control, in the base class for the page, or in a user control.

The MethodExpression class is like the CustomExpression class except that the method expression is executed in response to a method call, and the custom expression is executed in response to an event.

The following example shows how to search the ListPrice field of the Products table in the AdventureWorks database for products that have a list price of 400 or more. This example shows how to create a custom LINQ query in a method in page code and how to invoke the method in the QueryExtender control.

[Visual Basic]

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

[C#]

public static IQueryable<Product> 
        FilterStandardPrice(IQueryable<Product> query)
{
        return from p in query
                  where p.ListPrice >= 400
                  select p;

    }

The following example shows how to call the method in the page.

<html xmlns="http://www.w3.org/1999/xhtml">
<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>

.NET Framework

Supported in: 4.5, 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft