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 adlı Categorybir 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ıracak şekilde yapılandırılmış bir LinqDataSource denetim gösterilmektedir.
Key özelliği, ProductCategory ve Colorolmak üzere iki özelliği olan bir nesneye başvurur. tarafından 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 LinqDataSource verileri görüntülemek için iki ListView denetim gösterilmektedir. Denetimlerden biri ListView gruplandırılmış verileri, diğer ListView denetim ise o gruba ait ürünlerin adlarını görüntüler. İç içe veri 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 NameayarlarsanızGroupBy, sorgudaki aynı Name özellik değerine sahip tüm kayıtlar tek bir birleştirilmiş kayıt olarak döndürülür.
İşlevdeki new tüm özellikleri kapsayan GroupBy ve her özelliği virgül kullanarak ayırarak özelliğine birden fazla özellik atayabilirsiniz. Örneğin, özelliklere 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ı Keyoluşturulan bir özellik aracılığıyla döndürülür. Gruplandırılan değerleri almak için özelliğini özelliğine eklersiniz KeySelect . özelliğini anahtar sözcüğünü kullanarak As bir diğer ad olarak ayarlayabilirsinizKey, ancak diğer ad kullanmanız gerekmez. Örneğin, özelliğini adlı Categorybir ö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 bir 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(koşul)Any()All(koşul)
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.