MethodExpression Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece uma forma de especificar uma consulta LINQ personalizada definida num método.
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
- Herança
Exemplos
O exemplo seguinte mostra como pesquisar no campo Preço de Lista da tabela de Produtos na base de dados AdventureWorks por produtos com preço de lista de 400 ou mais. Este exemplo mostra como criar uma consulta LINQ personalizada num método em código de página e como invocar o método no QueryExtender controlo.
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;
}
O exemplo seguinte mostra como chamar o método na página.
<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>
Observações
O QueryExtender controlo suporta consultas LINQ personalizadas. Pode definir uma consulta LINQ personalizada num método e usar a MethodExpression opção de filtro para invocar a consulta no QueryExtender controlo.
O método que contém a consulta LINQ personalizada deve cumprir os seguintes critérios:
O método deve ser estático (
Sharedem Visual Basic). O primeiro parâmetro deve ser um IQueryable<T> objeto ou IEnumerable<T> . O método pode ter mais do que um parâmetro.O valor de retorno não pode alterar o IQueryable<T> tipo ou IEnumerable<T> que é consultado.
As MethodExpression pesquisas pelo método que contém a consulta seguem a seguinte ordem:
Se uma TypeName propriedade for especificada no QueryExtender controlo, o MethodExpression objeto procura o método no tipo especificado.
Se a fonte de dados implementar IDynamicDataSource, o método procura o método no tipo de contexto (DataContext ou ObjectContext objeto).
O método procura o método num controlo de template, na classe base da página ou num controlo de utilizador.
A MethodExpression classe é semelhante à CustomExpression classe, exceto que a expressão do método é executada em resposta a uma chamada de método, e a expressão personalizada é executada em resposta a um evento.
Construtores
| Name | Description |
|---|---|
| MethodExpression() |
Inicializa uma nova instância da MethodExpression classe. |
Propriedades
| Name | Description |
|---|---|
| Context |
Obtém a HttpContext instância do controlo do proprietário. (Herdado de DataSourceExpression) |
| DataSource |
Obtém o objeto fonte de dados associado ao controlo do proprietário. (Herdado de DataSourceExpression) |
| IgnoreIfNotFound |
Recebe ou define um valor que indica se a expressão deve ser ignorada. |
| IsTrackingViewState |
Recebe um valor que indica se um objeto de expressão de fonte de dados está a acompanhar as alterações no estado da sua visualização. (Herdado de DataSourceExpression) |
| MethodName |
Recebe ou define o nome do método que contém uma consulta LINQ personalizada. |
| Owner |
Fica com o controlo do dono. (Herdado de DataSourceExpression) |
| Parameters |
Obtém os parâmetros associados a este DataSourceExpression objeto. (Herdado de ParameterDataSourceExpression) |
| TypeName |
Obtém ou define a classe cujo método contém a consulta personalizada. |
| ViewState |
Obtém uma instância da StateBag classe que contém a informação atual do estado da vista. (Herdado de DataSourceExpression) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetQueryable(IQueryable) |
Resolve a expressão usando o objeto especificado IQueryable . |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| LoadViewState(Object) |
Carrega o estado dos valores no ParameterDataSourceExpression objeto que devem ser mantidos. (Herdado de ParameterDataSourceExpression) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| SaveViewState() |
Guarda o estado atual da vista do ParameterDataSourceExpression objeto. (Herdado de ParameterDataSourceExpression) |
| SetContext(Control, HttpContext, IQueryableDataSource) |
Executa a expressão usando o controlo do proprietário, contexto e fonte de dados especificados. (Herdado de ParameterDataSourceExpression) |
| SetDirty() |
Marca o DataSourceExpression objeto para que o seu estado seja guardado no estado de visualização. (Herdado de DataSourceExpression) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| TrackViewState() |
Acompanha as alterações de estado de visualização do ParameterDataSourceExpression objeto para que as alterações possam ser armazenadas no StateBag objeto para o objeto. (Herdado de ParameterDataSourceExpression) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IStateManager.IsTrackingViewState |
Quando implementado por uma classe, obtém um valor que indica se um objeto de expressão de fonte de dados está a acompanhar as alterações do estado da sua visualização. (Herdado de DataSourceExpression) |
| IStateManager.LoadViewState(Object) |
Quando implementado por uma classe, carrega o estado de visualização previamente guardado do objeto de expressão da fonte de dados. (Herdado de DataSourceExpression) |
| IStateManager.SaveViewState() |
Quando implementado por uma classe, guarda o estado atual da vista do DataSourceExpression objeto. (Herdado de DataSourceExpression) |
| IStateManager.TrackViewState() |
Quando implementado por uma classe, acompanha as alterações no estado da vista do DataSourceExpression objeto para que as alterações possam ser armazenadas no StateBag objeto para o objeto de expressão da fonte de dados. (Herdado de DataSourceExpression) |