Bagikan melalui


LinqDataSource.GroupBy Properti

Definisi

Mendapatkan atau menetapkan nilai yang menentukan properti mana yang digunakan untuk mengelompokkan data yang diambil.

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

Nilai Properti

String yang digunakan untuk membuat klausa Kelompokkan Menurut.

Contoh

Contoh berikut menunjukkan LinqDataSource kontrol yang mengelompokkan data yang dikembalikan oleh properti bernama Category. Ini mengembalikan nilai bersama dan menghitung harga rata-rata untuk rekaman yang dikelompokkan.

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

Contoh berikut menunjukkan LinqDataSource kontrol yang dikonfigurasi untuk mengelompokkan menurut dua kolom. Properti Key mereferensikan objek yang memiliki dua properti, ProductCategory dan Color. Objek yang diwakili oleh It diganti Productsnamanya . Objek yang diganti Products namanya berisi kumpulan rekaman individual dalam pengelompokan, dan setiap instans berisi semua kolom dari tabel Produk.

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

Contoh berikut menunjukkan dua ListView kontrol untuk menampilkan data dari LinqDataSource kontrol dalam contoh sebelumnya. Satu ListView kontrol menampilkan data yang dikelompokkan dan kontrol lainnya ListView menampilkan nama individual produk yang termasuk dalam grup tersebut. Properti kontrol DataSource terikat data berlapis diatur ke Products, yang merupakan alias untuk It objek .

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

Keterangan

Anda menggunakan GroupBy properti untuk menentukan properti mana yang digunakan untuk mengonsolidasikan rekaman data yang memiliki nilai yang sama. Misalnya, jika Anda mengatur GroupBy properti ke Name, semua rekaman dalam kueri yang memiliki nilai properti yang sama Name dikembalikan sebagai rekaman konsolidasi tunggal.

Anda dapat menetapkan lebih dari satu properti ke GroupBy properti dengan menyertakan semua properti dalam new fungsi dan memisahkan setiap properti dengan menggunakan koma. Misalnya, untuk mengelompokkan menurut properti Name lalu , atur properti ke GroupBynew(Name, Category).Category

Nilai dalam properti yang digunakan untuk pengelompokan dikembalikan melalui properti yang dihasilkan bernama Key. Anda menyertakan Key properti dalam Select properti untuk mengambil nilai yang dikelompokkan. Anda dapat mengatur properti ke Key alias dengan menggunakan As kata kunci, tetapi Anda tidak diharuskan menggunakan alias. Misalnya, Anda dapat mengatur properti ke GroupBy properti bernama Category. Anda dapat mengambil nilai konsolidasi dari Category properti dengan mengatur Select properti ke new(Key As ProductCategory).

Anda bisa mengakses rekaman individual dalam pengelompokan dengan menyertakan It properti di Select properti . Properti It berisi kumpulan rekaman yang berbagi nilai dalam properti yang dikelompokkan. Anda dapat melakukan iterasi melalui It properti untuk mengambil rekaman individual.

Properti GroupBy sering digunakan dengan metode agregasi. Anda dapat menggunakan metode agregat berikut:

  • Count()

  • Average(Kolom)

  • Sum(Kolom)

  • Max(Kolom)

  • Min(Kolom)

  • Where(kondisi)

  • Any()

  • All(kondisi)

Untuk informasi selengkapnya, lihat Gambaran Umum Kontrol Server Web LinqDataSource dan Cara: Mengelompokkan dan Mengagregasi Data Menggunakan Kontrol LinqDataSource.

Berlaku untuk