LinqDataSource.AutoGenerateWhereClause Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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é
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 true
dé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é true
sur , 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.