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

Boolean

trueLinqDataSource 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 AutoGenerateWhereClause gösterilmektedir true. Denetim GridView , sorgudan döndürülen verileri görüntülemek için denetime bağlıdır LinqDataSource . DropDownList Üç değerle doldurulan 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 AutoGenerateWhereClause LinqDataSource denetim, koleksiyondaki parametrelerden Where yan tümcesini WhereParameters 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ğlantılıdır. İçeren veya boş değer içeren null parametreler Where yan tümcesine dahil değildir.

Otomatik olarak oluşturulan Where yan tümce yalnızca eşitliği 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 olarak ayarlayarak ve koleksiyondaki AutoGenerateWhereClause false 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 AutoGenerateWhereClause özelliğini trueayarlamazsınız Where çünkü ayrıştırıcı Where yan tümcesini dinamik olarak oluşturur. LinqDataSource özelliği ise ve Where özelliğe true değerler atanmışsa AutoGenerateWhereClause denetim bir özel durum oluşturur.

Şunlara uygulanır