LinqDataSource.GroupBy Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui spécifie les propriétés utilisées pour regrouper les données récupérées.
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
Valeur de propriété
Chaîne utilisée pour créer la clause Group By.
Exemples
L’exemple suivant montre un LinqDataSource contrôle qui regroupe les données retournées par une propriété nommée Category
. Elle retourne les valeurs partagées et calcule le prix moyen des enregistrements regroupés.
<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>
L’exemple suivant montre un LinqDataSource contrôle configuré pour regrouper par deux colonnes. La Key
propriété fait référence à un objet qui a deux propriétés et ProductCategory
Color
. L’objet représenté par It
est renommé Products
. L’objet renommé Products
contient une collection d’enregistrements individuels dans un regroupement, et chaque instance contient toutes les colonnes de la table 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>
L’exemple suivant montre deux ListView contrôles pour afficher les données du LinqDataSource contrôle dans l’exemple précédent. Un ListView contrôle affiche les données regroupées et l’autre ListView contrôle affiche les noms individuels des produits appartenant à ce groupe. La propriété du DataSource contrôle imbriqué lié aux données est définie sur Products
, qui est l’alias de l’objet 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>
Remarques
Vous utilisez la GroupBy propriété pour spécifier les propriétés utilisées pour consolider les enregistrements de données qui ont les mêmes valeurs. Par exemple, si vous définissez la GroupBy propriété Name
sur , tous les enregistrements de la requête qui ont la même Name
valeur de propriété sont retournés en tant qu’enregistrement consolidé unique.
Vous pouvez affecter plusieurs propriétés à la GroupBy propriété en englobant toutes les propriétés de la new
fonction et en séparant chaque propriété à l’aide d’une virgule. Par exemple, pour regrouper par les propriétés Name
, puis Category
définir la GroupBy propriété new(Name, Category)
sur .
Les valeurs de la propriété utilisées pour le regroupement sont retournées par le biais d’une propriété générée nommée Key
. Vous incluez la Key
propriété dans la Select propriété pour récupérer les valeurs groupées. Vous pouvez définir la Key
propriété sur un alias à l’aide du As
mot clé, mais vous n’êtes pas obligé d’utiliser un alias. Par exemple, vous pouvez définir la GroupBy propriété sur une propriété nommée Category
. Vous pouvez récupérer les valeurs consolidées de la Category
propriété en définissant la Select propriété sur new(Key As ProductCategory)
.
Vous pouvez accéder aux enregistrements individuels dans un regroupement en incluant la It
propriété dans la Select propriété. La It
propriété contient une collection d’enregistrements qui partagent une valeur dans la propriété groupée. Vous pouvez itérer sur la It
propriété pour récupérer les enregistrements individuels.
La GroupBy propriété est souvent utilisée avec des méthodes d’agrégation. Vous pouvez utiliser les méthodes d’agrégation suivantes :
Count()
Average(
column)
Sum(
column)
Max(
column)
Min(
column)
Where(
Condition)
Any()
All(
Condition)
Pour plus d’informations, consultez La vue d’ensemble du contrôle web LinqDataSource et Comment : regrouper et agréger des données à l’aide du contrôle LinqDataSource.