LinqDataSource.AutoGenerateWhereClause Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het LinqDataSource besturingselement dynamisch een Where-component maakt op basis van waarden die in de WhereParameters verzameling zijn gedefinieerd.

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

Waarde van eigenschap

true als het LinqDataSource besturingselement de Where-component maakt; falseanders. De standaardwaarde is false.

Implementeringen

Voorbeelden

In het volgende voorbeeld ziet u een LinqDataSource besturingselement met de AutoGenerateWhereClause set op true. Een GridView besturingselement is gebonden aan het LinqDataSource besturingselement om de gegevens weer te geven die door de query worden geretourneerd. Er wordt een DropDownList besturingselement opgenomen dat is gevuld met drie waarden. Een parameter wordt opgenomen in de WhereParameters verzameling met de naam die Category, overeenkomt met een van de eigenschappen van het gegevensobject. De ControlID eigenschap is ingesteld op de id van het DropDownList besturingselement. Het LinqDataSource besturingselement maakt automatisch de Where eigenschap om records te filteren op basis van de waarde die de gebruiker selecteert in het DropDownList besturingselement. De query retourneert de records waarvan Category de eigenschap overeenkomt met de waarde die de gebruiker heeft geselecteerd in het DropDownList besturingselement.

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

Opmerkingen

Wanneer u de AutoGenerateWhereClause eigenschap trueinstelt op, maakt het LinqDataSource besturingselement dynamisch de Where-component op basis van de parameters in de WhereParameters verzameling. Voor elke parameter die u aan de WhereParameters verzameling toevoegt, moet de eigenschap zijn Name ingesteld op een waarde die overeenkomt met een eigenschap in het gegevensobject waarop een query wordt uitgevoerd. Met de automatisch gegenereerde Where-component wordt gecontroleerd of de waarde die is opgegeven in de WhereParameters verzameling gelijk is aan de waarde van de overeenkomende eigenschap in het gegevensobject. Als u meer dan één parameter opgeeft, worden de parameters gekoppeld aan een logische AND bewerking. Parameters die of een lege waarde bevatten null , worden niet opgenomen in de Where-component.

De automatisch gegenereerde Where component kan alleen testen op gelijkheid en kan alleen parameters koppelen aan de AND bewerking. Stel de AutoGenerateWhereClause eigenschap true niet in op als u een voorwaarde moet toevoegen die niet test op gelijkheid of als u parameters moet koppelen aan de OR bewerking. U kunt deze taken uitvoeren door de AutoGenerateWhereClause eigenschap in te stellen op en tijdelijke aanduidingen toe te false voegen aan de Where eigenschap voor elke parameter in de WhereParameters verzameling. Geef in de Where eigenschap een voorvoegsel voor elke tijdelijke aanduiding met het @-symbool.

U stelt de Where eigenschap niet in wanneer de AutoGenerateWhereClause eigenschap is true, omdat de parser dynamisch de Where-component maakt. Het LinqDataSource besturingselement genereert een uitzondering als de AutoGenerateWhereClause eigenschap is true en de Where eigenschap wordt toegewezen waarden.

Van toepassing op