LinqDataSource.GroupBy 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ść określającą, które właściwości są używane do grupowania pobranych danych.
public:
property System::String ^ GroupBy { System::String ^ get(); void set(System::String ^ value); };
public string GroupBy { get; set; }
member this.GroupBy : string with get, set
Public Property GroupBy As String
Wartość właściwości
Ciąg używany do tworzenia klauzuli Group By.
Przykłady
W poniższym przykładzie przedstawiono kontrolkę LinqDataSource , która grupuje zwrócone dane według właściwości o nazwie Category
. Zwraca wartości udostępnione i oblicza średnią cenę dla pogrupowanych rekordów.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="Category"
Select="new(Key as ProductCategory,
Average(Price) as AvePrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:GridView
AllowPaging="true"
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="Category"
Select="new(Key as ProductCategory,
Average(Price) as AvePrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:GridView
AllowPaging="true"
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
W poniższym przykładzie przedstawiono kontrolkę skonfigurowaną LinqDataSource do grupowania według dwóch kolumn. Właściwość Key
odwołuje się do obiektu, który ma dwie właściwości ProductCategory
i Color
. Nazwa obiektu reprezentowanego przez It
obiekt ma nazwę Products
. Zmieniono nazwę Products
obiektu zawiera kolekcję poszczególnych rekordów w grupowaniu, a każde wystąpienie zawiera wszystkie kolumny z tabeli Products.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="new(ProductCategory, Color)"
Select="new(Key,
It As Products,
Max(ListPrice) As MaxListPrice,
Min(ListPrice) As MinListPrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="new(ProductCategory, Color)"
Select="new(Key,
It As Products,
Max(ListPrice) As MaxListPrice,
Min(ListPrice) As MinListPrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
W poniższym przykładzie przedstawiono dwie ListView kontrolki do wyświetlania danych z kontrolki LinqDataSource w poprzednim przykładzie. Jedna ListView kontrolka wyświetla pogrupowane dane, a druga ListView wyświetla poszczególne nazwy produktów należących do tej grupy. Właściwość zagnieżdżonej kontrolki DataSource powiązanej z danymi jest ustawiona na Products
wartość , która jest aliasem It
obiektu.
<asp:ListView
DataSourceID="LinqDataSource1"
ID="ListView1" runat="server">
<LayoutTemplate>
<table id="Table1"
style="background-color:Teal;color:White"
runat="server"
class="Layout">
<thead>
<tr>
<th><b>Product Category</b></th>
<th><b>Color</b></th>
<th><b>Highest Price</b></th>
<th><b>Lowest Price</b></th>
</tr>
</thead>
<tr runat="server" id="itemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("key.ProductCategory") %></td>
<td><%# Eval("key.Color") %></td>
<td><%# Eval("MaxListPrice") %></td>
<td><%# Eval("MinListPrice") %></td>
</tr>
<tr>
<td colspan="4" style="width:100%;background-color:White;color:Black">
<asp:ListView
DataSource='<%# Eval("Products") %>'
runat="server"
ID="ListView2">
<LayoutTemplate>
<div runat="server" id="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<%# Eval("ProductName") %><br />
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<asp:ListView
DataSourceID="LinqDataSource1"
ID="ListView1" runat="server">
<LayoutTemplate>
<table id="Table1"
style="background-color:Teal;color:White"
runat="server"
class="Layout">
<thead>
<tr>
<th><b>Product Category</b></th>
<th><b>Color</b></th>
<th><b>Highest Price</b></th>
<th><b>Lowest Price</b></th>
</tr>
</thead>
<tr runat="server" id="itemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("key.ProductCategory") %></td>
<td><%# Eval("key.Color") %></td>
<td><%# Eval("MaxListPrice") %></td>
<td><%# Eval("MinListPrice") %></td>
</tr>
<tr>
<td colspan="4" style="width:100%;background-color:White;color:Black">
<asp:ListView
DataSource='<%# Eval("Products") %>'
runat="server"
ID="ListView2">
<LayoutTemplate>
<div runat="server" id="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<%# Eval("ProductName") %><br />
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
Uwagi
Właściwość służy do określania GroupBy , które właściwości są używane do konsolidowania rekordów danych, które mają te same wartości. Jeśli na przykład ustawisz GroupBy właściwość na Name
wartość , wszystkie rekordy w zapytaniu, które mają tę samą Name
wartość właściwości, zostaną zwrócone jako pojedynczy skonsolidowany rekord.
Do właściwości można przypisać więcej niż jedną właściwość GroupBy , otaczając wszystkie właściwości funkcji new
i oddzielając każdą właściwość za pomocą przecinka. Na przykład aby pogrupować według właściwości Name
, a następnie Category
ustaw GroupBy właściwość na new(Name, Category)
.
Wartości we właściwości używanej do grupowania są zwracane za pośrednictwem wygenerowanej właściwości o nazwie Key
. Właściwość należy dołączyć Key
do właściwości, Select aby pobrać pogrupowane wartości. Właściwość można ustawić Key
na alias przy użyciu słowa kluczowego As
, ale nie musisz używać aliasu. Na przykład można ustawić GroupBy właściwość na właściwość o nazwie Category
. Skonsolidowane wartości można pobrać z Category
właściwości, ustawiając Select właściwość na new(Key As ProductCategory)
.
Dostęp do poszczególnych rekordów w grupowaniu można uzyskać, włączając It
właściwość w Select właściwości . Właściwość It
zawiera kolekcję rekordów, które współdzielą wartość we właściwości pogrupowanej. Możesz wykonać iterację nad właściwością It
, aby pobrać poszczególne rekordy.
Właściwość GroupBy jest często używana z metodami agregacji. Można użyć następujących metod agregacji:
Count()
Average(
Kolumna)
Sum(
Kolumna)
Max(
Kolumna)
Min(
Kolumna)
Where(
Warunek)
Any()
All(
Warunek)
Aby uzyskać więcej informacji, zobacz LinqDataSource Web Server Control Overview and How to: Group and Aggregate Data Using the LinqDataSource Control (Omówienie kontroli serwera sieci Web LinqDataSource) i How to: Group and Aggregate Data Using the LinqDataSource Control (Instrukcje: grupowanie i agregowanie danych przy użyciu kontrolki LinqDataSource).
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla