LinqDataSource.AutoGenerateWhereClause Proprietà

Definizione

Ottiene o imposta un valore che indica se il controllo LinqDataSource crea dinamicamente una clausola Where in base ai valori definiti nell'insieme 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

Valore della proprietà

Boolean

true se il controllo LinqDataSource crea la clausola Where; in caso contrario, false. Il valore predefinito è false.

Implementazioni

Esempio

Nell'esempio seguente viene illustrato un LinqDataSource controllo con il AutoGenerateWhereClause set su true. Un GridView controllo è associato al LinqDataSource controllo per visualizzare i dati restituiti dalla query. È incluso un DropDownList controllo popolato con tre valori. Un parametro è incluso nella WhereParameters raccolta con il nome impostato su Category, cui corrisponde una delle proprietà dell'oggetto dati. La proprietà ControlID è impostata sull'ID del DropDownList controllo. Il LinqDataSource controllo crea automaticamente la Where proprietà per filtrare i record in base al valore selezionato dall'utente dal DropDownList controllo. La query restituisce i record la cui Category proprietà corrisponde al valore selezionato dall'utente dal DropDownList controllo.

<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>

Commenti

Quando si imposta la proprietà su true, il LinqDataSource controllo crea dinamicamente la AutoGenerateWhereClause clausola Where dai parametri dell'insiemeWhereParameters. Ogni parametro aggiunto alla raccolta deve avere la relativa Name proprietà impostata su un valore che corrisponde a una proprietà nell'oggetto dati sottoposto a WhereParameters query. La clausola Where generata automaticamente verificherà se il valore specificato nella WhereParameters raccolta equivale al valore della proprietà corrispondente nell'oggetto dati. Se si specificano più parametri, i parametri sono collegati a un'operazione logica AND . I parametri che contengono null o un valore vuoto non sono inclusi nella clausola Where.

La clausola generata Where automaticamente può testare solo per l'uguaglianza e può collegare i parametri solo con l'operazione AND . Non impostare la AutoGenerateWhereClause proprietà su true se è necessario aggiungere una condizione che non verifica l'uguaglianza o se è necessario correlare i parametri con l'operazione OR . È possibile eseguire queste attività impostando la AutoGenerateWhereClause proprietà su false e aggiungendo segnaposto nella Where proprietà per ogni parametro della WhereParameters raccolta. Where Nella proprietà prefazione di ogni nome segnaposto con il simbolo @.

Non si imposta la proprietà quando la Where AutoGenerateWhereClause proprietà è true, perché il parser crea dinamicamente la clausola Where. Il LinqDataSource controllo genera un'eccezione se la AutoGenerateWhereClause proprietà è true e la Where proprietà viene assegnata.

Si applica a