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

String

Group By yan tümcesini oluşturmak için kullanılan bir 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ırmak üzere yapılandırılmış bir LinqDataSource denetim gösterilmektedir. Key özelliği, ProductCategory ve Coloriki ö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 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.

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ı Keyoluş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ı 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 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.

Şunlara uygulanır