Partager via


LinqDataSource.AutoGenerateWhereClause Propriété

Définition

Obtient ou définit une valeur qui indique si le contrôle LinqDataSource crée dynamiquement une clause Where basée sur les valeurs définies dans la collection WhereParameters.

public:
 property bool AutoGenerateWhereClause { bool get(); void set(bool value); };
public bool AutoGenerateWhereClause { get; set; }
member this.AutoGenerateWhereClause : bool with get, set
Public Property AutoGenerateWhereClause As Boolean

Valeur de propriété

Boolean

true si le contrôle LinqDataSource crée la clause Where ; sinon, false. La valeur par défaut est false.

Implémente

Exemples

L’exemple suivant montre un LinqDataSource contrôle avec la AutoGenerateWhereClause valeur truedéfinie sur . Un GridView contrôle est lié au LinqDataSource contrôle pour afficher les données retournées par la requête. Un DropDownList contrôle est inclus avec trois valeurs. Un paramètre est inclus dans la WhereParameters collection avec le nom défini sur lequel correspond l’une Category, des propriétés de l’objet de données. Sa ControlID propriété est définie sur l’ID du DropDownList contrôle. Le LinqDataSource contrôle crée automatiquement la Where propriété pour filtrer les enregistrements en fonction de la valeur que l’utilisateur sélectionne dans le DropDownList contrôle. La requête retourne les enregistrements dont Category la propriété correspond à la valeur sélectionnée par l’utilisateur dans le DropDownList contrôle.

<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
    <asp:ListItem Value="Sports"></asp:ListItem>
    <asp:ListItem Value="Garden"></asp:ListItem>
    <asp:ListItem Value="Auto"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    AutoGenerateWhereClause="true"
    ID="LinqDataSource1" 
    runat="server">
    <WhereParameters>
        <asp:ControlParameter 
            Name="Category" 
            ControlID="DropDownList1" 
            Type="String" />
    </WhereParameters>
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
    <asp:ListItem Value="Sports"></asp:ListItem>
    <asp:ListItem Value="Garden"></asp:ListItem>
    <asp:ListItem Value="Auto"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    AutoGenerateWhereClause="true"
    ID="LinqDataSource1" 
    runat="server">
    <WhereParameters>
        <asp:ControlParameter 
            Name="Category" 
            ControlID="DropDownList1" 
            Type="String" />
    </WhereParameters>
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

Remarques

Lorsque vous définissez la AutoGenerateWhereClause propriété truesur , le LinqDataSource contrôle crée dynamiquement la clause Where à partir des paramètres de la WhereParameters collection. Chaque paramètre que vous ajoutez à la WhereParameters collection doit avoir sa Name propriété définie sur une valeur qui correspond à une propriété dans l’objet de données interrogé. La clause Where générée automatiquement vérifie si la valeur spécifiée dans la WhereParameters collection est égale à la valeur de la propriété correspondante dans l’objet de données. Si vous fournissez plusieurs paramètres, les paramètres sont liés à une opération logique AND . Les paramètres qui contiennent null ou une valeur vide ne sont pas inclus dans la clause Where.

La clause générée Where automatiquement peut tester uniquement l’égalité et lier des paramètres uniquement avec l’opération AND . Ne définissez pas la AutoGenerateWhereClause propriété true sur si vous devez ajouter une condition qui ne teste pas l’égalité ou si vous devez lier des paramètres à l’opération OR . Vous pouvez effectuer ces tâches en définissant la AutoGenerateWhereClause propriété false sur et en ajoutant des espaces réservés dans la Where propriété pour chaque paramètre de la WhereParameters collection. Dans la Where propriété, préfacez chaque nom d’espace réservé avec le symbole @.

Vous ne définissez pas la Where propriété lorsque la AutoGenerateWhereClause propriété est true, car l’analyseur crée dynamiquement la clause Where. Le LinqDataSource contrôle lève une exception si la AutoGenerateWhereClause propriété est true et que la propriété est affectée à des Where valeurs.

S’applique à