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 kontrol LinqDataSource 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 kontrol LinqDataSource yang dikonfigurasi untuk mengelompokkan menurut dua kolom. Properti Key mereferensikan objek yang memiliki dua properti, ProductCategory dan Color. Objek yang diwakili oleh It diganti namanya Products. Objek Products yang diganti 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 kontrol ListView untuk menampilkan data dari kontrol LinqDataSource dalam contoh sebelumnya. Satu kontrol ListView menampilkan data yang dikelompokkan dan kontrol ListView lainnya menampilkan nama individual produk yang termasuk dalam grup tersebut. Properti DataSource kontrol terikat data berlapis diatur ke Products, yang merupakan alias untuk objek It.

<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 properti GroupBy untuk menentukan properti mana yang digunakan untuk mengonsolidasikan rekaman data yang memiliki nilai yang sama. Misalnya, jika Anda mengatur properti GroupBy ke Name, semua rekaman dalam kueri yang memiliki nilai properti Name yang sama dikembalikan sebagai rekaman konsolidasi tunggal.

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

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

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

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

  • Count()

  • kolom

  • kolom

  • kolom

  • kolom

  • kondisi

  • Any()

  • kondisi

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

Berlaku untuk