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 Category
adlı 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 Color
olmak üzere iki özelliği olan bir nesneye başvurur.
It
tarafından temsil edilen nesne Products
yeniden 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 Products
olarak 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 Name
olarak 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 Category
için GroupBy özelliğini new(Name, Category)
olarak ayarlayın.
Gruplandırma için kullanılan özelliğindeki değerler, Key
adlı 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 Category
adlı 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ış