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 dize.
Örnekler
Aşağıdaki örnekte, döndürülen verileri Categoryadlı bir özelliğe göre gruplandıran bir LinqDataSource denetimi 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 denetimi gösterilmektedir.
Key özelliği, ProductCategory ve Colorolmak üzere iki özelliği olan bir nesneye başvurur.
It tarafından temsil edilen nesne Productsyeniden adlandırılır. Yeniden adlandırılan Products nesnesi, bir gruplandırmadaki tek tek kayıtların bir koleksiyonunu ve her örnek de 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 LinqDataSource denetiminden verileri görüntülemek için iki ListView denetimi gösterilmektedir. Bir ListView denetimi gruplandırılmış verileri, diğer ListView denetimi ise bu gruba ait ürünlerin adlarını tek tek görüntüler. İç içe veri bağlı denetimin DataSource özelliği, It nesnesinin diğer adı olan Productsolarak ayarlanır.
<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 sahip veri kayıtlarını birleştirmek için hangi özelliklerin kullanılacağını belirtmek için GroupBy özelliğini kullanırsınız. Örneğin, GroupBy özelliğini Nameolarak ayarlarsanız, sorgudaki aynı Name özellik değerine sahip tüm kayıtlar tek bir birleştirilmiş kayıt olarak döndürülür.
new işlevindeki tüm özellikleri kapsayan ve her özelliği virgül kullanarak ayırarak GroupBy özelliğine birden fazla özellik atayabilirsiniz. Örneğin, Name özelliklerine göre gruplandırmak ve ardından Categoryiçin GroupBy özelliğini new(Name, Category)olarak ayarlayın.
Gruplandırma için kullanılan özelliğindeki değerler, Keyadlı oluşturulan bir özellik aracılığıyla döndürülür. Gruplandırılmış değerleri almak için Select özelliğine Key özelliğini eklersiniz.
As anahtar sözcüğünü kullanarak Key özelliğini diğer ad olarak ayarlayabilirsiniz, ancak diğer ad kullanmanız gerekmez. Örneğin, GroupBy özelliğini Categoryadlı bir özelliğe ayarlayabilirsiniz.
Select özelliğini new(Key As ProductCategory)olarak ayarlayarak Category özelliğinden birleştirilmiş değerleri alabilirsiniz.
Select özelliğine It özelliğini ekleyerek gruplandırmadaki tek tek kayıtlara erişebilirsiniz.
It özelliği, gruplandırılmış özellikteki bir değeri paylaşan bir kayıt koleksiyonu içerir. Tek tek kayıtları almak için It özelliğini yineleyebilirsiniz.
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(koşulu)Any()All(koşulu)
Daha fazla bilgi için bkz. LinqDataSource Web Sunucusu Denetimine Genel Bakış