LinqDataSource.AutoGenerateWhereClause Properti

Definisi

Mendapatkan atau menetapkan nilai yang menunjukkan apakah LinqDataSource kontrol secara dinamis membuat klausa Where berdasarkan nilai yang ditentukan dalam WhereParameters koleksi.

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

Nilai Properti

true LinqDataSource jika kontrol akan membuat klausa Where; jika tidak, false. Defaultnya adalah false.

Penerapan

Contoh

Contoh berikut menunjukkan LinqDataSource kontrol dengan diatur ke AutoGenerateWhereClausetrue. GridView Kontrol terikat ke LinqDataSource kontrol untuk menampilkan data yang dikembalikan dari kueri. Kontrol DropDownList disertakan yang diisi dengan tiga nilai. Parameter disertakan dalam WhereParameters koleksi dengan nama yang diatur ke Category, yang cocok dengan salah satu properti objek data. Propertinya ControlID diatur ke ID DropDownList kontrol. LinqDataSource Kontrol secara otomatis membuat Where properti untuk memfilter rekaman berdasarkan nilai yang dipilih pengguna dari DropDownList kontrol. Kueri mengembalikan rekaman yang propertinya Category cocok dengan nilai yang telah dipilih pengguna dari DropDownList kontrol.

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

Keterangan

Saat Anda mengatur AutoGenerateWhereClause properti ke true, LinqDataSource kontrol secara dinamis membuat klausa Where dari parameter dalam WhereParameters koleksi. Setiap parameter yang Anda tambahkan ke WhereParameters koleksi harus mengatur propertinya Name ke nilai yang cocok dengan properti di objek data yang sedang dikueri. Klausa Where yang dihasilkan secara otomatis akan memeriksa apakah nilai yang ditentukan dalam WhereParameters koleksi sama dengan nilai properti yang cocok dalam objek data. Jika Anda menyediakan lebih dari satu parameter, parameter ditautkan dengan operasi logis AND . Parameter yang berisi null atau nilai kosong tidak disertakan dalam klausa Where.

Klausa yang dihasilkan Where secara otomatis hanya dapat menguji kesetaraan dan dapat menautkan AND parameter hanya dengan operasi. Jangan atur properti ke AutoGenerateWhereClausetrue jika Anda harus menambahkan kondisi yang tidak menguji kesetaraan atau jika Anda harus menghubungkan parameter dengan OR operasi. Anda dapat menyelesaikan tugas-tugas ini dengan mengatur AutoGenerateWhereClause properti ke false dan menambahkan tempat penampung di Where properti untuk setiap parameter dalam WhereParameters koleksi. Di properti , awali Where setiap nama tempat penampung dengan simbol @ .

Anda tidak mengatur Where properti ketika AutoGenerateWhereClause properti adalah true, karena pengurai secara dinamis membuat klausa Where. Kontrol LinqDataSource melemparkan pengecualian jika AutoGenerateWhereClause properti adalah true dan Where properti ditetapkan nilai.

Berlaku untuk