Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

CustomExpression, classe

Offre un moyen de spécifier une requête LINQ personnalisée appelée en réponse à un événement.

Espace de noms :  System.Web.UI.WebControls.Expressions
Assembly :  System.Web.Extensions (dans System.Web.Extensions.dll)
public class CustomExpression : ParameterDataSourceExpression

Le type CustomExpression expose les membres suivants.

  Nom Description
Méthode publique CustomExpression Initialise une nouvelle instance de la classe CustomExpression.
Début
  Nom Description
Propriété protégée Context Obtient l'instance HttpContext du contrôle propriétaire. (Hérité de DataSourceExpression.)
Propriété publique DataSource Obtient l'objet source de données associé au contrôle propriétaire. (Hérité de DataSourceExpression.)
Propriété protégée IsTrackingViewState Obtient une valeur qui indique si un objet expression de source de données effectue le suivi des modifications apportées à son état d'affichage. (Hérité de DataSourceExpression.)
Propriété protégée Owner Obtient le contrôle propriétaire. (Hérité de DataSourceExpression.)
Propriété publique Parameters Obtient les paramètres associés à cet objet DataSourceExpression. (Hérité de ParameterDataSourceExpression.)
Propriété protégée ViewState Obtient une instance de la classe StateBag qui contient les informations sur l'état d'affichage actuel. (Hérité de DataSourceExpression.)
Début
  Nom Description
Méthode publique Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetQueryable Permet d'accéder à l'objet IQueryable modifié que la source de données utilise. (Substitue DataSourceExpression.GetQueryable(IQueryable).)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée LoadViewState Charge l'état des valeurs de l'objet ParameterDataSourceExpression qui doivent être persistantes. (Hérité de ParameterDataSourceExpression.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode protégée SaveViewState Enregistre l'état d'affichage actuel de l'objet ParameterDataSourceExpression. (Hérité de ParameterDataSourceExpression.)
Méthode publique SetContext Exécute l'expression à l'aide du contrôle propriétaire, du contexte et de la source de données spécifiés. (Hérité de ParameterDataSourceExpression.)
Méthode publique SetDirty Marque l'objet DataSourceExpression afin que son état soit enregistré dans l'état d'affichage. (Hérité de DataSourceExpression.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode protégée TrackViewState Suit les modifications d'état d'affichage apportées à l'objet ParameterDataSourceExpression afin de les stocker dans l'objet StateBag pour l'objet. (Hérité de ParameterDataSourceExpression.)
Début
  Nom Description
Événement public Querying Se produit lorsque la valeur de la source de données IQueryable est définie.
Début
  Nom Description
Implémentation d'interface explicite Propriété privée IStateManager.IsTrackingViewState En cas d'implémentation par une classe, obtient une valeur qui indique si un objet expression de source de données effectue le suivi des modifications de son état d'affichage. (Hérité de DataSourceExpression.)
Implémentation d'interface explicite Méthode privée IStateManager.LoadViewState En cas d'implémentation par une classe, charge l'état d'affichage précédemment enregistré de l'objet expression de source de données. (Hérité de DataSourceExpression.)
Implémentation d'interface explicite Méthode privée IStateManager.SaveViewState En cas d'implémentation par une classe, enregistre l'état d'affichage actuel de l'objet DataSourceExpression. (Hérité de DataSourceExpression.)
Implémentation d'interface explicite Méthode privée IStateManager.TrackViewState En cas d'implémentation par une classe, suit les modifications apportées à l'état d'affichage de l'objet DataSourceExpression afin que les modifications puissent être stockées dans l'objet StateBag pour l'objet expression de source de données. (Hérité de DataSourceExpression.)
Début

La classe CustomExpression est utilisée avec le contrôle QueryExtender. Le contrôle QueryExtender prend en charge une gamme d'options que vous pouvez utiliser pour filtrer des données. Le contrôle QueryExtender prend en charge les filtres permettant de rechercher des chaînes et des valeurs comprises dans une plage spécifiée, ainsi que de comparer une valeur de propriété dans un tableau à une valeur spécifiée et de trier des données. Ces options sont fournies comme expressions LINQ dans le contrôle QueryExtender. Vous pouvez utiliser ces expressions de filtre ou vous pouvez fournir une expression personnalisée que vous pouvez utiliser dans le contrôle QueryExtender. La classe CustomExpression vous permet de spécifier une expression personnalisée dans votre application et de l'appeler dans un gestionnaire d'événements.

Remarque Remarque

Vous pouvez fournir une requête personnalisée appelée par une méthode au lieu d'un gestionnaire d'événements à l'aide de la classe MethodExpression.

L'exemple suivant indique comment créer un objet CustomExpression utilisé par le contrôle QueryExtender. L'expression personnalisée appelle la méthode FilterProducts, qui contient une expression LINQ personnalisée. Le résultat de l'opération de filtrage est affiché dans un contrôle GridView.


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Custom Filter</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    <asp:LinqDataSource ID="LinqDataSource1" runat="server" 
        ContextTypeName="AdventureWorksDataContext" EntityTypeName="" 
        TableName="Products">
    </asp:LinqDataSource>

    <asp:QueryExtender ID="QueryExtender1" runat="server" TargetControlID="LinqDataSource1">
        <asp:CustomExpression OnQuerying="FilterProducts"></asp:CustomExpression>
    </asp:QueryExtender>

    <asp:GridView ID="GridView1" runat="server"  
        DataSourceID="LinqDataSource1"   
        DataKeyNames="ProductID"  AllowPaging="True">
    </asp:GridView>
    </form>
</body>
</html>


L'exemple suivant affiche un gestionnaire d'événements qui contient une requête LINQ personnalisée. L'expression filtre la table Product dans la base de données AdventureWorks et affiche les produits qui ont un tarif supérieur ou égal à 3 500,00 $.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.Expressions;
using System.Linq;

public partial class _Default : System.Web.UI.Page 
{
    protected void FilterProducts(object sender, CustomExpressionEventArgs e)
    {
        e.Query = from p in e.Query.Cast<Product>()
                  where p.ListPrice >= 3500
                  select p;
    }
}



.NET Framework

Pris en charge dans : 4

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ