LinqDataSource.GroupBy Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u een waarde op die aangeeft welke eigenschappen worden gebruikt voor het groeperen van de opgehaalde gegevens.
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
Waarde van eigenschap
Een tekenreeks die wordt gebruikt om de Group By-component te maken.
Voorbeelden
In het volgende voorbeeld ziet u een LinqDataSource besturingselement waarmee de geretourneerde gegevens worden gegroepeerd op basis van een eigenschap met de naam Category. Hiermee worden de gedeelde waarden geretourneerd en wordt de gemiddelde prijs voor de gegroepeerde records berekend.
<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>
In het volgende voorbeeld ziet u een LinqDataSource besturingselement dat is geconfigureerd om te groeperen op twee kolommen. De Key eigenschap verwijst naar een object met twee eigenschappen en ProductCategoryColor. De naam van het object It is gewijzigd Products. Het hernoemde Products object bevat een verzameling afzonderlijke records in een groepering en elk exemplaar bevat alle kolommen uit de tabel Producten.
<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>
In het volgende voorbeeld ziet u twee ListView besturingselementen voor het weergeven van de gegevens uit het LinqDataSource besturingselement in het vorige voorbeeld. In het ene ListView besturingselement worden de gegroepeerde gegevens weergegeven en in het andere ListView besturingselement worden de afzonderlijke namen weergegeven van producten die deel uitmaken van die groep. De eigenschap van DataSource het geneste gegevensgebonden besturingselement is ingesteld op Products, de alias voor het It object.
<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>
Opmerkingen
U gebruikt de GroupBy eigenschap om op te geven welke eigenschappen worden gebruikt voor het consolideren van gegevensrecords met dezelfde waarden. Als u de GroupBy eigenschap Namebijvoorbeeld instelt op, worden alle records in de query met dezelfde Name eigenschapswaarde geretourneerd als één geconsolideerde record.
U kunt meer dan één eigenschap toewijzen aan de GroupBy eigenschap door alle eigenschappen in de functie in te new sluiten en elke eigenschap te scheiden met behulp van een komma. Als u bijvoorbeeld wilt groeperen op de eigenschappen Name en vervolgens Categoryde GroupBy eigenschap wilt instellen op new(Name, Category).
De waarden in de eigenschap die worden gebruikt voor groeperen, worden geretourneerd via een gegenereerde eigenschap met de naam Key. U neemt de Key eigenschap op in de Select eigenschap om de gegroepeerde waarden op te halen. U kunt de Key eigenschap instellen op een alias met behulp van het As trefwoord, maar u hoeft geen alias te gebruiken. U kunt de eigenschap bijvoorbeeld instellen op een eigenschap met de GroupBy naam Category. U kunt de geconsolideerde waarden van de Category eigenschap ophalen door de Select eigenschap in te stellen op new(Key As ProductCategory).
U hebt toegang tot de afzonderlijke records in een groepering door de It eigenschap in de eigenschap op te Select tellen. De It eigenschap bevat een verzameling records die een waarde in de gegroepeerde eigenschap delen. U kunt de It eigenschap herhalen om de afzonderlijke records op te halen.
De GroupBy eigenschap wordt vaak gebruikt met aggregatiemethoden. U kunt de volgende statistische methoden gebruiken:
Count()Average(Kolom)Sum(Kolom)Max(Kolom)Min(Kolom)Where(conditie)Any()All(conditie)
Zie Overzicht van linqDataSource-webserverbeheer en procedures voor het groeperen en aggregeren van gegevens met behulp van het LinqDataSource-besturingselement voor meer informatie.