LinqDataSource.GroupBy プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
取得したデータをグループ化するために使用するプロパティを指定する値を取得または設定します。
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
プロパティ値
Group By 句の作成に使用される文字列。
例
次の例は、Category
という名前のプロパティによって返されたデータをグループ化する LinqDataSource コントロールを示しています。 共有値を返し、グループ化されたレコードの平均価格を計算します。
<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>
次の例は、2 つの列でグループ化するように構成された LinqDataSource コントロールを示しています。
Key
プロパティは、ProductCategory
と Color
の 2 つのプロパティを持つオブジェクトを参照します。
It
によって表されるオブジェクトの名前が Products
変更されます。 名前が変更された Products
オブジェクトには、グループ化された個々のレコードのコレクションが含まれており、各インスタンスには 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>
次の例は、前の例の LinqDataSource コントロールのデータを表示するための 2 つの ListView コントロールを示しています。 1 つの ListView コントロールにはグループ化されたデータが表示され、もう 1 つの ListView コントロールには、そのグループに属する製品の個々の名前が表示されます。 入れ子になったデータ バインド コントロールの DataSource プロパティは、It
オブジェクトのエイリアスである Products
に設定されます。
<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>
注釈
GroupBy プロパティを使用して、同じ値を持つデータ レコードを統合するために使用するプロパティを指定します。 たとえば、GroupBy プロパティを Name
に設定すると、同じ Name
プロパティ値を持つクエリ内のすべてのレコードが 1 つの統合レコードとして返されます。
new
関数内のすべてのプロパティを囲み、各プロパティをコンマで区切ることで、GroupBy プロパティに複数のプロパティを割り当てることができます。 たとえば、プロパティ Name
グループ化して Category
するには、GroupBy プロパティを new(Name, Category)
に設定します。
グループ化に使用されるプロパティの値は、Key
という名前の生成されたプロパティを通じて返されます。 グループ化された値を取得するには、Select プロパティに Key
プロパティを含めます。
Key
プロパティは、As
キーワードを使用してエイリアスに設定できますが、エイリアスを使用する必要はありません。 たとえば、GroupBy プロパティを Category
という名前のプロパティに設定できます。
Select プロパティを new(Key As ProductCategory)
に設定すると、Category
プロパティから統合値を取得できます。
Select プロパティに It
プロパティを含めることで、グループ内の個々のレコードにアクセスできます。
It
プロパティには、グループ化されたプロパティの値を共有するレコードのコレクションが含まれています。
It
プロパティを反復処理して、個々のレコードを取得できます。
GroupBy プロパティは、集計メソッドでよく使用されます。 次の集計メソッドを使用できます。
Count()
列
を する 列
を する 列
を する 列
を する Where(
条件の)
Any()
All(
条件の)
詳細については、「LinqDataSource Web サーバー コントロールの概要 と 方法: LinqDataSource コントロールを使用してデータをグループ化および集計する方法」を参照してください。
適用対象
.NET