LinqDataSource.GroupBy Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen eines Werts, der angibt, welche Eigenschaften zum Gruppieren der abgerufenen Daten verwendet werden.
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
Eigenschaftswert
Eine Zeichenfolge, die zum Erstellen der Group By-Klausel verwendet wird.
Beispiele
Das folgende Beispiel zeigt ein LinqDataSource Steuerelement, das die zurückgegebenen Daten durch eine Eigenschaft mit dem Namen Category
gruppiert. Sie gibt die freigegebenen Werte zurück und berechnet den Durchschnittspreis für die gruppierten Datensätze.
<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>
Das folgende Beispiel zeigt ein LinqDataSource-Steuerelement, das für die Gruppierung nach zwei Spalten konfiguriert ist. Die Key
-Eigenschaft verweist auf ein Objekt mit zwei Eigenschaften, ProductCategory
und Color
. Das durch It
dargestellte Objekt wird Products
umbenannt. Das umbenannte Products
-Objekt enthält eine Auflistung der einzelnen Datensätze in einer Gruppierung, und jede Instanz enthält alle Spalten aus der Tabelle "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>
Das folgende Beispiel zeigt zwei ListView-Steuerelemente zum Anzeigen der Daten aus dem LinqDataSource-Steuerelement im vorherigen Beispiel. Ein ListView Steuerelement zeigt die gruppierten Daten und das andere ListView Steuerelement die einzelnen Namen von Produkten an, die zu dieser Gruppe gehören. Die DataSource-Eigenschaft des geschachtelten datengebundenen Steuerelements wird auf Products
festgelegt, bei dem es sich um den Alias für das It
-Objekt handelt.
<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>
Hinweise
Mit der GroupBy-Eigenschaft können Sie angeben, welche Eigenschaften zum Konsolidieren von Datensätzen mit denselben Werten verwendet werden. Wenn Sie z. B. die GroupBy Eigenschaft auf Name
festlegen, werden alle Datensätze in der Abfrage mit demselben Name
Eigenschaftswert als einzelner konsolidierter Datensatz zurückgegeben.
Sie können der GroupBy-Eigenschaft mehrere Eigenschaften zuweisen, indem Sie alle Eigenschaften in die new
-Funktion einschließen und jede Eigenschaft mithilfe eines Kommas trennen. Wenn Sie z. B. nach den Eigenschaften Name
gruppieren und dann Category
, legen Sie die GroupBy-Eigenschaft auf new(Name, Category)
fest.
Die Werte in der Eigenschaft, die für die Gruppierung verwendet werden, werden über eine generierte Eigenschaft mit dem Namen Key
zurückgegeben. Sie fügen die Key
-Eigenschaft in die eigenschaft Select ein, um die gruppierten Werte abzurufen. Sie können die Key
-Eigenschaft auf einen Alias festlegen, indem Sie das schlüsselwort As
verwenden, sie müssen jedoch keinen Alias verwenden. Beispielsweise können Sie die eigenschaft GroupBy auf eine Eigenschaft mit dem Namen Category
festlegen. Sie können die konsolidierten Werte aus der eigenschaft Category
abrufen, indem Sie die eigenschaft Select auf new(Key As ProductCategory)
festlegen.
Sie können auf die einzelnen Datensätze in einer Gruppierung zugreifen, indem Sie die eigenschaft It
in die eigenschaft Select einschließen. Die It
-Eigenschaft enthält eine Auflistung von Datensätzen, die einen Wert in der gruppierten Eigenschaft gemeinsam verwenden. Sie können die It
-Eigenschaft durchlaufen, um die einzelnen Datensätze abzurufen.
Die GroupBy-Eigenschaft wird häufig mit Aggregationsmethoden verwendet. Sie können die folgenden Aggregatmethoden verwenden:
Count()
Average(
Spalten-)
Sum(
Spalten-)
Max(
Spalten-)
Min(
Spalten-)
Where(
Bedingung)
Any()
All(
Bedingung)
Weitere Informationen finden Sie unter LinqDataSource Web Server Control Overview and How to: Group and Aggregate Data Using the LinqDataSource Control.