Aracılığıyla paylaş


LinqDataSource.GroupBy Özellik

Tanım

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ış ve nasıl yapılır: LinqDataSource DenetimiKullanarak Verileri Gruplandırma ve Toplama .

Şunlara uygulanır