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 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.

Şunlara uygulanır