LinqDataSource.GroupBy Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece un valor que especifica qué propiedades se utilizan para agrupar los datos recuperados.
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
Valor de propiedad
Cadena que se usa para crear la cláusula Group By.
Ejemplos
En el ejemplo siguiente se muestra un LinqDataSource control que agrupa los datos devueltos por una propiedad denominada Category
. Devuelve los valores compartidos y calcula el precio medio de los registros agrupados.
<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>
En el ejemplo siguiente se muestra un LinqDataSource control configurado para agrupar por dos columnas. La Key
propiedad hace referencia a un objeto que tiene dos propiedades y ProductCategory
Color
. Se ha Products
cambiado el nombre del objeto representado por It
. El objeto cuyo nombre ha cambiado Products
contiene una colección de los registros individuales de una agrupación y cada instancia contiene todas las columnas de la tabla 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>
En el ejemplo siguiente se muestran dos ListView controles para mostrar los datos del LinqDataSource control en el ejemplo anterior. Un ListView control muestra los datos agrupados y el otro ListView control muestra los nombres individuales de los productos que pertenecen a ese grupo. La propiedad del DataSource control enlazado a datos anidada se establece Products
en , que es el alias del It
objeto .
<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>
Comentarios
Utilice la GroupBy propiedad para especificar qué propiedades se usan para consolidar los registros de datos que tienen los mismos valores. Por ejemplo, si establece la GroupBy propiedad Name
en , todos los registros de la consulta que tienen el mismo Name
valor de propiedad se devuelven como un único registro consolidado.
Puede asignar más de una propiedad a la GroupBy propiedad si incluye todas las propiedades de la new
función y separa cada propiedad mediante una coma. Por ejemplo, para agrupar por las propiedades Name
y, a continuación Category
, establezca la GroupBy propiedad en new(Name, Category)
.
Los valores de la propiedad que se usan para la agrupación se devuelven a través de una propiedad generada denominada Key
. La propiedad se Key
incluye en la Select propiedad para recuperar los valores agrupados. Puede establecer la Key
propiedad en un alias mediante la As
palabra clave , pero no es necesario usar un alias. Por ejemplo, puede establecer la GroupBy propiedad en una propiedad denominada Category
. Puede recuperar los valores consolidados de la Category
propiedad estableciendo la Select propiedad en new(Key As ProductCategory)
.
Puede acceder a los registros individuales de una agrupación mediante la inclusión de la It
propiedad en la Select propiedad . La It
propiedad contiene una colección de registros que comparten un valor en la propiedad agrupada. Puede iterar sobre la It
propiedad para recuperar los registros individuales.
La GroupBy propiedad se usa a menudo con métodos de agregación. Puede usar los métodos agregados siguientes:
Count()
Average(
Columna)
Sum(
Columna)
Max(
Columna)
Min(
Columna)
Where(
condition)
Any()
All(
condition)
Para obtener más información, vea Información general sobre el control de servidor web LinqDataSource y Cómo: Agrupar y agregar datos mediante el control LinqDataSource.
Se aplica a
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de