Aracılığıyla paylaş


LinqDataSource.AutoGenerateWhereClause Özellik

Tanım

Denetimin koleksiyonda WhereParameters tanımlanan değerlere göre dinamik olarak where yan tümcesi oluşturup oluşturmadığını LinqDataSource gösteren bir değer alır veya ayarlar.

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

Özellik Değeri

true LinqDataSource denetim Where yan tümcesini oluşturacaksa; değilse, false. Varsayılan değer: false.

Uygulamalar

Örnekler

Aşağıdaki örnekte olarak ayarlanmış bir LinqDataSource denetim gösterilmektedir AutoGenerateWhereClausetrue. Denetim GridView , sorgudan döndürülen verileri görüntülemek için denetime bağlıdır LinqDataSource . DropDownList Üç değerle doldurulmuş bir denetim eklenir. Veri nesnesinin WhereParameters özelliklerinden biriyle eşleşen ada sahip Category, koleksiyona bir parametre eklenir. Özelliği ControlID denetimin kimliğine DropDownList ayarlanır. Denetim, LinqDataSource kullanıcının denetimden DropDownList seçtiği değere göre kayıtları filtrelemek için özelliğini otomatik olarak oluştururWhere. Sorgu, özelliği kullanıcının denetimden DropDownList seçtiği değerle eşleşen kayıtları Category döndürür.

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

Açıklamalar

özelliğini trueolarak ayarladığınızda AutoGenerateWhereClauseLinqDataSource, denetim koleksiyondaki parametrelerden WhereParameters Where yan tümcesini dinamik olarak oluşturur. Koleksiyona eklediğiniz her parametrenin WhereParameters özelliği sorgulanan veri nesnesindeki bir özellikle eşleşen bir değere ayarlanmalıdır Name . Otomatik olarak oluşturulan Where yan tümcesi, koleksiyonda belirtilen değerin WhereParameters veri nesnesindeki eşleşen özelliğin değerine eşit olup olmadığını denetler. Birden fazla parametre sağlarsanız, parametreler mantıksal AND bir işlemle bağlanır. İçeren veya boş bir değer içeren null parametreler Where yan tümcesine dahil değildir.

Otomatik olarak oluşturulan Where yan tümcesi yalnızca eşitlik için test edebilir ve parametreleri yalnızca işlemle AND bağlayabilir. Eşitlik testi yapmayan AutoGenerateWhereClause bir koşul eklemeniz gerekiyorsa veya parametreleri işlemle OR ilişkilendirmeniz gerekiyorsa özelliğini true olarak ayarlamayın. Özelliğini false olarak ayarlayarak ve koleksiyondaki AutoGenerateWhereClause her parametre WhereParameters için özelliğine Where yer tutucular ekleyerek bu görevleri gerçekleştirebilirsiniz. özelliğinde Where , her yer tutucu adının önüne @ simgesi ekleyin.

Özelliği olduğunda AutoGenerateWhereClausetrueözelliğini ayarlamazsınız Where çünkü ayrıştırıcı where yan tümcesini dinamik olarak oluşturur. özelliği LinqDataSource ise ve özelliğine AutoGenerateWhereClausetrueWhere değerler atanmışsa, denetim bir özel durum oluşturur.

Şunlara uygulanır