LinqDataSource.GroupBy Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Alınan verileri gruplandırma için hangi özelliklerin kullanılacağını belirten bir değer alır veya ayarlar.
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
Özellik Değeri
Group By yan tümcesini oluşturmak için kullanılan bir dize.
Örnekler
Aşağıdaki örnekte, döndürülen verileri adlı Category
bir LinqDataSource özelliğe göre gruplandıran bir denetim gösterilmektedir. Paylaşılan değerleri döndürür ve gruplandırılmış kayıtların ortalama fiyatını hesaplar.
<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>
Aşağıdaki örnekte, iki sütuna göre gruplandırmak üzere yapılandırılmış bir LinqDataSource denetim gösterilmektedir. Key
özelliği, ProductCategory
ve Color
iki özelliği olan bir nesneye başvurur. ile It
temsil edilen nesne yeniden adlandırılır Products
. Yeniden adlandırılan Products
nesne bir gruplandırmadaki tek tek kayıtların bir koleksiyonunu ve her örnek products tablosundaki tüm sütunları içerir.
<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>
Aşağıdaki örnekte, önceki örnekteki denetimden verileri görüntülemeye LinqDataSource yönelik iki ListView denetim gösterilmektedir. Denetimlerden biri ListView gruplandırılmış verileri, diğer ListView denetim ise o gruba ait ürünlerin tek tek adlarını görüntüler. İç içe veriye bağlı denetimin DataSource özelliği, nesnenin diğer adı It
olan olarak ayarlanırProducts
.
<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>
Açıklamalar
aynı değerlere GroupBy sahip veri kayıtlarını birleştirmek için hangi özelliklerin kullanılacağını belirtmek için özelliğini kullanırsınız. Örneğin, özelliğini olarak Name
ayarlarsanızGroupBy, sorgudaki aynı Name
özellik değerine sahip tüm kayıtlar tek bir birleştirilmiş kayıt olarak döndürülür.
işlevindeki GroupBy tüm özellikleri new
kapsayan ve her özelliği virgül kullanarak ayırarak özelliğe birden fazla özellik atayabilirsiniz. Örneğin, özelliklerine Name
göre gruplandırmak ve ardından Category
özelliğini olarak new(Name, Category)
ayarlayınGroupBy.
özelliğindeki gruplandırma için kullanılan değerler adlı Key
oluşturulan bir özellik aracılığıyla döndürülür. Gruplandırılan değerleri almak için özelliğini Select özelliğine eklersinizKey
. anahtar sözcüğünü Key
kullanarak As
özelliğini diğer ad olarak ayarlayabilirsiniz, ancak diğer ad kullanmanız gerekmez. Örneğin, özelliğini adlı Category
bir özelliğe ayarlayabilirsinizGroupBy. özelliğini new(Key As ProductCategory)
olarak ayarlayarak Select özelliğinden Category
birleştirilmiş değerleri alabilirsiniz.
Özelliği özelliğine ekleyerek It
gruplandırmadaki tek tek kayıtlara Select erişebilirsiniz. özelliği, It
gruplandırılmış özellikteki bir değeri paylaşan bir kayıt koleksiyonu içerir. Tek tek kayıtları almak için özelliğini yineleyebilirsiniz It
.
GroupBy özelliği genellikle toplama yöntemleriyle kullanılır. Aşağıdaki toplama yöntemlerini kullanabilirsiniz:
Count()
Average(
Sütun)
Sum(
Sütun)
Max(
Sütun)
Min(
Sütun)
Where(
Durum)
Any()
All(
Durum)
Daha fazla bilgi için bkz. LinqDataSource Web Sunucusu Denetimine Genel Bakış ve Nasıl yapılır: LinqDataSource Denetimini Kullanarak Verileri Gruplandırma ve Toplama.