LinqDataSource.AutoGenerateWhereClause Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wartość wskazującą, czy LinqDataSource kontrolka dynamicznie tworzy klauzulę Where na podstawie wartości zdefiniowanych w kolekcji WhereParameters .
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
Wartość właściwości
true
jeśli kontrolka utworzy klauzulę LinqDataSource Where; w przeciwnym razie false
. Wartość domyślna to false
.
Implementuje
Przykłady
W poniższym przykładzie przedstawiono kontrolkę z ustawioną wartością LinqDataSource AutoGenerateWhereClause true
. Kontrolka GridView jest powiązana z kontrolką LinqDataSource , aby wyświetlić dane zwracane z zapytania. Uwzględniona jest kontrolka DropDownList wypełniona trzema wartościami. Parametr jest uwzględniony w kolekcji WhereParameters z ustawioną Category,
nazwą zgodną z jedną z właściwości obiektu danych. Jego ControlID właściwość jest ustawiona na identyfikator kontrolki DropDownList . Kontrolka LinqDataSource automatycznie tworzy Where właściwość do filtrowania rekordów na podstawie wartości wybranej przez użytkownika z kontrolki DropDownList . Zapytanie zwraca rekordy, których Category
właściwość odpowiada wartości wybranej przez użytkownika z kontrolki 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>
Uwagi
Po ustawieniu właściwości na true
wartość kontrolka LinqDataSource AutoGenerateWhereClause dynamicznie tworzy klauzulę Where z parametrów w kolekcjiWhereParameters. Każdy parametr dodawany do WhereParameters kolekcji musi mieć jego Name właściwość ustawioną na wartość zgodną z właściwością obiektu danych, którego dotyczy zapytanie. Automatycznie wygenerowana klauzula Where sprawdzi, czy wartość określona w kolekcji jest równa wartości pasującej właściwości w WhereParameters obiekcie danych. Jeśli podasz więcej niż jeden parametr, parametry są połączone z operacją logiczną AND
. Parametry zawierające null
lub puste nie są uwzględniane w klauzuli Where.
Automatycznie wygenerowana Where klauzula może testować tylko pod kątem równości i może łączyć parametry tylko z operacją AND
. Nie ustawiaj AutoGenerateWhereClause właściwości na true
, jeśli musisz dodać warunek, który nie sprawdza równości lub jeśli musisz powiązać parametry z operacją OR
. Te zadania można wykonać, ustawiając AutoGenerateWhereClause właściwość na false
i dodając symbole zastępcze we Where właściwości dla każdego parametru w kolekcji WhereParameters . Where We właściwości wstępnie wyprzedaj każdą nazwę symbolu zastępczego z symbolem @.
Właściwość nie jest ustawiana Where , gdy AutoGenerateWhereClause właściwość to true
, ponieważ analizator dynamicznie tworzy klauzulę Where. Kontrolka LinqDataSource zgłasza wyjątek, jeśli AutoGenerateWhereClause właściwość jest true
i Where właściwość ma przypisane wartości.