다음을 통해 공유


LinqDataSource.AutoGenerateWhereClause 속성

정의

LinqDataSource 컨트롤이 WhereParameters 컬렉션에 정의된 값을 기준으로 Where 절을 동적으로 만드는지 여부를 나타내는 값을 가져오거나 설정합니다.

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

속성 값

Boolean

LinqDataSource 컨트롤이 Where 절을 만들면 true이고, 그렇지 않으면 false입니다. 기본값은 false입니다.

구현

예제

다음 예제에서는 로 설정된 true컨트롤을 AutoGenerateWhereClause 보여줍니다LinqDataSource. GridView 컨트롤은 쿼리에서 반환되는 데이터를 표시하기 위해 컨트롤에 바인딩 LinqDataSource 됩니다. DropDownList 세 개의 값으로 채워진 컨트롤이 포함되어 있습니다. 매개 변수는 데이터 개체의 WhereParameters 속성 중 하나와 일치하는 이름이 설정된 Category, 컬렉션에 포함됩니다. 해당 ControlID 속성은 컨트롤의 ID로 설정됩니다 DropDownList . 컨트롤은 LinqDataSource 사용자가 컨트롤에서 DropDownList 선택하는 값에 따라 레코드를 필터링하는 속성을 자동으로 만듭니다Where. 쿼리는 속성이 Category 컨트롤에서 사용자가 선택한 값과 일치하는 레코드를 DropDownList 반환합니다.

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

설명

속성을 true설정 AutoGenerateWhereClause 하면 컨트롤이 컬렉션의 LinqDataSource 매개 변수 WhereParameters 에서 Where 절을 동적으로 만듭니다. 컬렉션에 WhereParameters 추가하는 각 매개 변수에는 쿼리 중인 데이터 개체의 속성과 일치하는 값으로 해당 Name 속성이 설정되어 있어야 합니다. 자동으로 생성된 Where 절은 컬렉션에 WhereParameters 지정된 값이 데이터 개체의 일치 속성 값과 같은지 여부를 확인합니다. 둘 이상의 매개 변수를 제공하는 경우 매개 변수는 논리 AND 연산과 연결됩니다. Where 절에 포함되거나 빈 값이 포함된 null 매개 변수는 포함되지 않습니다.

자동으로 생성된 Where 절은 같음만 테스트할 수 있으며 매개 변수를 작업과 AND 만 연결할 수 있습니다. 같음을 테스트하지 않는 조건을 추가해야 하거나 매개 변수를 작업과 OR 연결해야 하는 경우 속성을 true 설정 AutoGenerateWhereClause 하지 마세요. 속성을 false 설정 하 고 컬렉션의 AutoGenerateWhereClause 각 매개 변수 WhereParameters 에 대 한 속성에 Where 자리 표시자를 추가 하 여 이러한 작업을 수행할 수 있습니다. 속성에서 Where 각 자리 표시자 이름 앞에 @ 기호가 있습니다.

파서가 Where 절을 Where AutoGenerateWhereClause 동적으로 만들므로 속성이 true있는 경우 속성을 설정하지 않습니다. LinqDataSource 속성이 있고 속성 true 에 값이 AutoGenerateWhereClause 할당된 경우 컨트롤이 예외를 Where throw합니다.

적용 대상