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.
Ruft einen Wert ab, der die zum Gruppieren der abgerufenen Daten verwendeten Eigenschaften angibt, oder legt diesen fest.
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 mit einer Eigenschaft namens Category
gruppiert. Es 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 durch zwei Spalten konfiguriert ist. Die Key
-Eigenschaft verweist auf ein Objekt mit zwei Eigenschaften und Color
ProductCategory
. Das durch It
dargestellte Objekt wird umbenannt Products
. 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 der Produkte an, die zu dieser Gruppe gehören. Die Eigenschaft des DataSource geschachtelten datengebundenen Steuerelements ist auf festgelegt, wobei es sich um Products
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
Sie verwenden die GroupBy -Eigenschaft, um anzugeben, welche Eigenschaften zum Konsolidieren von Datensätzen mit den gleichen Werten verwendet werden. Wenn Sie beispielsweise die GroupBy -Eigenschaft auf Name
festlegen, werden alle Datensätze in der Abfrage, die denselben Name
Eigenschaftswert aufweisen, 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 möchten, legen Category
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 schließen die Key
-Eigenschaft in die Select -Eigenschaft ein, um die gruppierten Werte abzurufen. Sie können die Key
Eigenschaft auf einen Alias festlegen, indem Sie das As
Schlüsselwort verwenden, aber Sie müssen keinen Alias verwenden. Beispielsweise können Sie die GroupBy Eigenschaft auf eine Eigenschaft mit dem Namen Category
festlegen. Sie können die konsolidierten Werte aus der Category
-Eigenschaft abrufen, indem Sie die Select -Eigenschaft auf new(Key As ProductCategory)
festlegen.
Sie können auf die einzelnen Datensätze in einer Gruppierung zugreifen, indem Sie die It
-Eigenschaft in die Select -Eigenschaft einschließen. Die It
-Eigenschaft enthält eine Auflistung von Datensätzen, die einen Wert in der gruppierten Eigenschaft gemeinsam haben. 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(
Spalte)
Sum(
Spalte)
Max(
Spalte)
Min(
Spalte)
Where(
condition)
Any()
All(
condition)
Weitere Informationen finden Sie unter LinqDataSource-Webserversteuerelement übersicht und Vorgehensweise: Gruppieren und Aggregieren von Daten mithilfe des LinqDataSource-Steuerelements.
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für