LinqDataSource.GroupBy Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau menetapkan nilai yang menentukan properti mana yang digunakan untuk mengelompokkan data yang diambil.
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
Nilai Properti
String yang digunakan untuk membuat klausa Kelompokkan Menurut.
Contoh
Contoh berikut menunjukkan kontrol LinqDataSource yang mengelompokkan data yang dikembalikan oleh properti bernama Category
. Ini mengembalikan nilai bersama dan menghitung harga rata-rata untuk rekaman yang dikelompokkan.
<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>
Contoh berikut menunjukkan kontrol LinqDataSource yang dikonfigurasi untuk mengelompokkan menurut dua kolom. Properti Key
mereferensikan objek yang memiliki dua properti, ProductCategory
dan Color
. Objek yang diwakili oleh It
diganti namanya Products
. Objek Products
yang diganti namanya berisi kumpulan rekaman individual dalam pengelompokan, dan setiap instans berisi semua kolom dari tabel Produk.
<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>
Contoh berikut menunjukkan dua kontrol ListView untuk menampilkan data dari kontrol LinqDataSource dalam contoh sebelumnya. Satu kontrol ListView menampilkan data yang dikelompokkan dan kontrol ListView lainnya menampilkan nama individual produk yang termasuk dalam grup tersebut. Properti DataSource kontrol terikat data berlapis diatur ke Products
, yang merupakan alias untuk objek 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>
Keterangan
Anda menggunakan properti GroupBy untuk menentukan properti mana yang digunakan untuk mengonsolidasikan rekaman data yang memiliki nilai yang sama. Misalnya, jika Anda mengatur properti GroupBy ke Name
, semua rekaman dalam kueri yang memiliki nilai properti Name
yang sama dikembalikan sebagai rekaman konsolidasi tunggal.
Anda dapat menetapkan lebih dari satu properti ke properti GroupBy dengan menyertakan semua properti dalam fungsi new
dan memisahkan setiap properti dengan menggunakan koma. Misalnya, untuk mengelompokkan menurut properti Name
lalu Category
, atur properti GroupBy ke new(Name, Category)
.
Nilai dalam properti yang digunakan untuk pengelompokan dikembalikan melalui properti yang dihasilkan bernama Key
. Anda menyertakan properti Key
di properti Select untuk mengambil nilai yang dikelompokkan. Anda dapat mengatur properti Key
ke alias dengan menggunakan kata kunci As
, tetapi Anda tidak diharuskan menggunakan alias. Misalnya, Anda dapat mengatur properti GroupBy ke properti bernama Category
. Anda dapat mengambil nilai konsolidasi dari properti Category
dengan mengatur properti Select ke new(Key As ProductCategory)
.
Anda bisa mengakses rekaman individual dalam pengelompokan dengan menyertakan properti It
di properti Select. Properti It
berisi kumpulan rekaman yang berbagi nilai dalam properti yang dikelompokkan. Anda dapat melakukan iterasi melalui properti It
untuk mengambil rekaman individual.
Properti GroupBy sering digunakan dengan metode agregasi. Anda dapat menggunakan metode agregat berikut:
Count()
kolom kolom kolom kolom kondisi Any()
kondisi
Untuk informasi selengkapnya, lihat Gambaran Umum Kontrol Server Web LinqDataSource dan Cara: Mengelompokkan dan Mengagregasi Data Menggunakan Kontrol LinqDataSource.