LinqDataSource.GroupBy Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu, která určuje, které vlastnosti se používají pro seskupení načtených dat.
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
Hodnota vlastnosti
Řetězec, který se používá k vytvoření klauzule Group By.
Příklady
Následující příklad ukazuje LinqDataSource ovládací prvek, který seskupuje vrácená data podle vlastnosti s názvem Category
. Vrátí sdílené hodnoty a vypočítá průměrnou cenu seskupených záznamů.
<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>
Následující příklad ukazuje LinqDataSource ovládací prvek, který je nakonfigurován pro seskupení podle dvou sloupců. Vlastnost Key
odkazuje na objekt, který má dvě vlastnosti, ProductCategory
a Color
. Objekt reprezentovaný It
je přejmenován Products
. Přejmenovaný objekt Products
obsahuje kolekci jednotlivých záznamů ve seskupení a každá instance obsahuje všechny sloupce z tabulky 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>
Následující příklad ukazuje dva ovládací prvky ListView pro zobrazení dat z ovládacího prvku LinqDataSource v předchozím příkladu. Jeden ListView ovládací prvek zobrazuje seskupovaná data a druhý ovládací prvek ListView zobrazuje jednotlivé názvy produktů, které patří do této skupiny. Vlastnost DataSource vnořeného ovládacího prvku vázaného na data je nastavena na Products
, což je alias pro objekt It
.
<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>
Poznámky
Vlastnost GroupBy slouží k určení vlastností, které se používají ke sloučení datových záznamů se stejnými hodnotami. Pokud například nastavíte vlastnost GroupBy na Name
, vrátí se všechny záznamy v dotazu, které mají stejnou hodnotu vlastnosti Name
, jako jeden konsolidovaný záznam.
Ke vlastnosti GroupBy můžete přiřadit více než jednu vlastnost tak, že všechny vlastnosti uzavřete do funkce new
a jednotlivé vlastnosti oddělíte čárkou. Chcete-li například seskupit podle vlastností Name
a potom Category
, nastavte vlastnost GroupBy na new(Name, Category)
.
Hodnoty ve vlastnosti, které se používají pro seskupování, se vrátí prostřednictvím vygenerované vlastnosti s názvem Key
. Do vlastnosti Select zahrnete vlastnost Key
, která načte seskupené hodnoty. Vlastnost Key
můžete nastavit na alias pomocí klíčového slova As
, ale nemusíte používat alias. Můžete například nastavit vlastnost GroupBy na vlastnost s názvem Category
. Konsolidované hodnoty můžete načíst z vlastnosti Category
nastavením vlastnosti Select na new(Key As ProductCategory)
.
K jednotlivým záznamům ve skupině můžete přistupovat tak, že do vlastnosti Select zahrnete vlastnost It
. Vlastnost It
obsahuje kolekci záznamů, které sdílejí hodnotu ve seskupené vlastnosti. Můžete iterovat přes vlastnost It
a načíst jednotlivé záznamy.
Vlastnost GroupBy se často používá s metodami agregace. Můžete použít následující agregační metody:
Count()
sloupce sloupce sloupce sloupce podmínky Any()
podmínky
Další informace najdete v tématu Přehled ovládacích prvků Webového serveru LinqDataSource a Postupy: Seskupení a agregace dat pomocí ovládacího prvku LinqDataSource.