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 Seskupit podle.
Příklady
Následující příklad ukazuje ovládací prvek LinqDataSource , 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 ovládací prvek LinqDataSource , který je nakonfigurován tak, aby seskupil podle dvou sloupců. Vlastnost Key
odkazuje na objekt, který má dvě vlastnosti, ProductCategory
a Color
. Objekt reprezentovaný se It
přejmenuje Products
na . Přejmenovaný Products
objekt obsahuje kolekci jednotlivých záznamů v 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 zobrazuje seskupovaná data a druhý ListView zobrazuje jednotlivé názvy produktů, které patří do této skupiny. Vlastnost vnořeného ovládacího prvku vázaného DataSource na data je nastavená 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 určíte, které vlastnosti se použijí ke sloučení datových záznamů, které mají stejné hodnoty. Pokud například nastavíte GroupBy vlastnost na Name
hodnotu , všechny záznamy v dotazu, které mají stejnou Name
hodnotu vlastnosti, se vrátí jako jeden konsolidovaný záznam.
K vlastnosti můžete přiřadit více než jednu vlastnost GroupBy tak, že uzavřete všechny vlastnosti ve new
funkci a každou vlastnost oddělíte pomocí čárky. Pokud chcete například seskupit podle vlastností Name
a pak Category
, nastavte GroupBy vlastnost na new(Name, Category)
.
Hodnoty ve vlastnosti, které se používají k seskupení, jsou vráceny prostřednictvím vygenerované vlastnosti s názvem Key
. Zahrnete vlastnost Key
do vlastnosti Select pro načtení seskupených hodnot. Vlastnost můžete nastavit Key
na alias pomocí klíčového As
slova, ale nemusíte používat alias. Vlastnost můžete například nastavit GroupBy na vlastnost s názvem Category
. Konsolidované hodnoty můžete načíst z Category
vlastnosti nastavením Select vlastnosti na new(Key As ProductCategory)
hodnotu .
K jednotlivým záznamům v seskupení můžete přistupovat tak, že do Select vlastnosti zahrnete It
vlastnost. Vlastnost It
obsahuje kolekci záznamů, které sdílejí hodnotu ve seskupené vlastnosti. Můžete iterovat vlastnost a It
načíst jednotlivé záznamy.
Vlastnost se GroupBy č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 najdete v tématu Přehled ovládacího prvku webového serveru LinqDataSource a Postupy: Seskupení a agregace dat pomocí ovládacího prvku LinqDataSource.
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro