MethodExpression 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一种方式,用于指定某个方法中定义的自定义 LINQ 查询。
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
- 继承
示例
以下示例演示如何在 AdventureWorks 数据库中的 Products 表的 ListPrice 字段中搜索标价为 400 或更高的产品。 此示例演示如何在页面代码的方法中创建自定义 LINQ 查询,以及如何调用 控件中的 QueryExtender 方法。
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;
}
以下示例演示如何在 页面中调用 方法。
<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>
注解
控件 QueryExtender 支持自定义 LINQ 查询。 可以在方法中定义自定义 LINQ 查询, MethodExpression 并使用筛选器选项调用控件中的 QueryExtender 查询。
包含自定义 LINQ 查询的方法必须满足以下条件:
方法必须是 Visual Basic)
Shared
中的静态 (。 第一个 IQueryable<T> 参数必须是 或 IEnumerable<T> 对象。 方法可以有多个参数。返回值无法更改 IQueryable<T> 查询的 或 IEnumerable<T> 类型。
按 MethodExpression 以下顺序搜索包含查询的方法:
如果在 控件中指定了TypeName属性,则对象将MethodExpression查找指定类型中的 QueryExtender 方法。
如果数据源实现 IDynamicDataSource,则该方法在上下文类型 (DataContext 或 ObjectContext object.)
方法在模板控件、页面的基类或用户控件中查找 方法。
类 MethodExpression 与 类类似 CustomExpression ,不同之处在于执行方法表达式以响应方法调用,而执行自定义表达式以响应事件。
构造函数
MethodExpression() |
初始化 MethodExpression 类的新实例。 |
属性
Context |
获取所有者控件的 HttpContext 实例。 (继承自 DataSourceExpression) |
DataSource |
获取与所有者控件关联的数据源对象。 (继承自 DataSourceExpression) |
IgnoreIfNotFound |
获取或设置一个值,该值指示是否应忽略表达式。 |
IsTrackingViewState |
获取一个值,该值指示数据源表达式对象是否跟踪其视图状态更改。 (继承自 DataSourceExpression) |
MethodName |
获取或设置包含自定义 LINQ 查询的方法的名称。 |
Owner |
获取所有者控件。 (继承自 DataSourceExpression) |
Parameters |
获取与此 DataSourceExpression 对象关联的参数。 (继承自 ParameterDataSourceExpression) |
TypeName |
获取或设置其方法包含自定义查询的类。 |
ViewState |
获取 StateBag 类的一个实例,其中包含当前的视图状态信息。 (继承自 DataSourceExpression) |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetQueryable(IQueryable) |
使用指定 IQueryable 对象解析表达式。 |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
LoadViewState(Object) |
加载必须持久化的 ParameterDataSourceExpression 对象中值的状态。 (继承自 ParameterDataSourceExpression) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
SaveViewState() |
保存 ParameterDataSourceExpression 对象的当前视图状态。 (继承自 ParameterDataSourceExpression) |
SetContext(Control, HttpContext, IQueryableDataSource) |
使用指定的所有者控件、上下文和数据源来执行表达式。 (继承自 ParameterDataSourceExpression) |
SetDirty() |
标记 DataSourceExpression 对象,以便在视图状态中保存其状态。 (继承自 DataSourceExpression) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |
TrackViewState() |
跟踪 ParameterDataSourceExpression 对象的视图状态更改,以使这些更改可以存储在该对象的 StateBag 对象中。 (继承自 ParameterDataSourceExpression) |
显式接口实现
IStateManager.IsTrackingViewState |
由类实现时,获取一个值,该值指示数据源表达式对象是否跟踪其视图状态更改。 (继承自 DataSourceExpression) |
IStateManager.LoadViewState(Object) |
由类实现时,加载数据源表达式对象以前保存的视图状态。 (继承自 DataSourceExpression) |
IStateManager.SaveViewState() |
由类实现时,保存 DataSourceExpression 对象的当前视图状态。 (继承自 DataSourceExpression) |
IStateManager.TrackViewState() |
由类实现时,跟踪 DataSourceExpression 对象的视图状态更改,以使这些更改可以存储在数据源表达式对象的 StateBag 对象中。 (继承自 DataSourceExpression) |