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ý Products objekt 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 ListView ovládací prvky pro zobrazení dat z LinqDataSource ovládacího prvku v předchozím příkladu. Jeden ListView ovládací prvek zobrazí seskupovaná data a druhý ListView ovládací prvek zobrazí jednotlivé názvy produktů, které patří do této skupiny. Vlastnost vnořeného ovládacího prvku DataSource vázaného na data je nastavena na Products, což je alias objektu 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
Pomocí GroupBy vlastnosti můžete určit, které vlastnosti se používají ke sloučení datových záznamů se stejnými hodnotami. Pokud například nastavíte GroupBy vlastnost na Namehodnotu , vrátí se všechny záznamy v dotazu, které mají stejnou Name hodnotu vlastnosti, jako jeden konsolidovaný záznam.
Vlastnost můžete přiřadit více než jednu vlastnost GroupBy uzavřením všech vlastností ve new funkci a oddělením každé vlastnosti pomocí čárky. Chcete-li například seskupit podle vlastností Name a pak Categorynastavte GroupBy vlastnost na new(Name, Category)hodnotu .
Hodnoty ve vlastnosti, které se používají pro seskupování, jsou vráceny prostřednictvím vygenerované vlastnosti s názvem Key. Do vlastnosti zahrnete Key vlastnost Select , která načte seskupené hodnoty. Vlastnost můžete nastavit Key na alias pomocí klíčového As slova, ale nemusíte používat alias. Můžete například nastavit GroupBy vlastnost na vlastnost s názvem Category. Konsolidované hodnoty Category můžete z vlastnosti načíst nastavením Select vlastnosti na new(Key As ProductCategory)hodnotu .
K jednotlivým záznamům ve skupině můžete přistupovat zahrnutím It vlastnosti do Select vlastnosti. Vlastnost It obsahuje kolekci záznamů, které sdílejí hodnotu ve seskupené vlastnosti. Můžete iterovat nad It vlastností 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()Average(Sloupec)Sum(Sloupec)Max(Sloupec)Min(Sloupec)Where(podmínka)Any()All(podmínka)
Další informace naleznete 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.