LinqDataSource.GroupBy Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che specifica quali proprietà vengono utilizzate per raggruppare i dati recuperati.
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
Valore della proprietà
Stringa usata per creare la clausola Group By.
Esempio
Nell'esempio seguente viene illustrato un LinqDataSource controllo che raggruppa i dati restituiti da una proprietà denominata Category
. Restituisce i valori condivisi e calcola il prezzo medio per i record raggruppati.
<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>
Nell'esempio seguente viene illustrato un LinqDataSource controllo configurato per raggruppare in base a due colonne. La Key
proprietà fa riferimento a un oggetto con due proprietà ProductCategory
e Color
. L'oggetto rappresentato da It
viene rinominato Products
. L'oggetto rinominato contiene una raccolta dei singoli record in un raggruppamento Products
e ogni istanza contiene tutte le colonne della tabella 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>
Nell'esempio seguente vengono illustrati due ListView controlli per visualizzare i dati dal controllo nell'esempio LinqDataSource precedente. Un ListView controllo visualizza i dati raggruppati e l'altro ListView controllo visualizza i singoli nomi dei prodotti che appartengono a tale gruppo. La proprietà del DataSource controllo associato a dati annidata è impostata su Products
, ovvero l'alias per l'oggetto 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>
Commenti
Utilizzare la GroupBy proprietà per specificare quali proprietà vengono usate per consolidare i record di dati con gli stessi valori. Ad esempio, se si imposta la GroupBy proprietà su Name
, tutti i record della query con lo stesso Name
valore della proprietà vengono restituiti come singolo record consolidato.
È possibile assegnare più proprietà alla GroupBy proprietà racchiudendo tutte le proprietà nella new
funzione e separando ogni proprietà usando una virgola. Ad esempio, per raggruppare in base alle proprietà Name
e quindi Category
, impostare la GroupBy proprietà su new(Name, Category)
.
I valori della proprietà usati per il raggruppamento vengono restituiti tramite una proprietà generata denominata Key
. Includere la Key
proprietà nella Select proprietà per recuperare i valori raggruppati. È possibile impostare la proprietà su un alias usando la Key
As
parola chiave, ma non è necessario usare un alias. Ad esempio, è possibile impostare la GroupBy proprietà su una proprietà denominata Category
. È possibile recuperare i valori consolidati dalla Category
proprietà impostando la Select proprietà su new(Key As ProductCategory)
.
È possibile accedere ai singoli record in un raggruppamento includendo la It
proprietà nella Select proprietà . La It
proprietà contiene una raccolta di record che condividono un valore nella proprietà raggruppata. È possibile eseguire l'iterazione della It
proprietà per recuperare i singoli record.
La GroupBy proprietà viene spesso usata con metodi di aggregazione. È possibile usare i metodi di aggregazione seguenti:
Count()
Average(
Colonna)
Sum(
Colonna)
Max(
Colonna)
Min(
Colonna)
Where(
Condizione)
Any()
All(
Condizione)
Per altre informazioni, vedere Panoramica del controllo server Web LinqDataSourcee Procedura: raggruppare e aggregare i dati usando il controllo LinqDataSource.
Si applica a
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per