Share via


LinqDataSource.GroupBy Vlastnost

Definice

Získá nebo nastaví hodnotu, která určuje, které vlastnosti se používají pro seskupení načtených dat.

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

Hodnota vlastnosti

Řetězec, který se používá k vytvoření klauzule Seskupit podle.

Příklady

Následující příklad ukazuje ovládací prvek LinqDataSource , který seskupuje vrácená data podle vlastnosti s názvem Category. Vrátí sdílené hodnoty a vypočítá průměrnou cenu seskupených záznamů.

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

Následující příklad ukazuje ovládací prvek LinqDataSource , který je nakonfigurován tak, aby seskupil podle dvou sloupců. Vlastnost Key odkazuje na objekt, který má dvě vlastnosti, ProductCategory a Color. Objekt reprezentovaný se It přejmenuje Productsna . Přejmenovaný Products objekt obsahuje kolekci jednotlivých záznamů v seskupení a každá instance obsahuje všechny sloupce z tabulky Products.

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

Následující příklad ukazuje dva ListView ovládací prvky pro zobrazení dat z LinqDataSource ovládacího prvku v předchozím příkladu. Jeden ListView ovládací prvek zobrazuje seskupovaná data a druhý ListView zobrazuje jednotlivé názvy produktů, které patří do této skupiny. Vlastnost vnořeného ovládacího prvku vázaného DataSource na data je nastavená na Products, což je alias objektu 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>

Poznámky

Pomocí GroupBy vlastnosti určíte, které vlastnosti se použijí ke sloučení datových záznamů, které mají stejné hodnoty. Pokud například nastavíte GroupBy vlastnost na Namehodnotu , všechny záznamy v dotazu, které mají stejnou Name hodnotu vlastnosti, se vrátí jako jeden konsolidovaný záznam.

K vlastnosti můžete přiřadit více než jednu vlastnost GroupBy tak, že uzavřete všechny vlastnosti ve new funkci a každou vlastnost oddělíte pomocí čárky. Pokud chcete například seskupit podle vlastností Name a pak Category, nastavte GroupBy vlastnost na new(Name, Category).

Hodnoty ve vlastnosti, které se používají k seskupení, jsou vráceny prostřednictvím vygenerované vlastnosti s názvem Key. Zahrnete vlastnost Key do vlastnosti Select pro načtení seskupených hodnot. Vlastnost můžete nastavit Key na alias pomocí klíčového As slova, ale nemusíte používat alias. Vlastnost můžete například nastavit GroupBy na vlastnost s názvem Category. Konsolidované hodnoty můžete načíst z Category vlastnosti nastavením Select vlastnosti na new(Key As ProductCategory)hodnotu .

K jednotlivým záznamům v seskupení můžete přistupovat tak, že do Select vlastnosti zahrnete It vlastnost. Vlastnost It obsahuje kolekci záznamů, které sdílejí hodnotu ve seskupené vlastnosti. Můžete iterovat vlastnost a It načíst jednotlivé záznamy.

Vlastnost se GroupBy často používá s metodami agregace. Můžete použít následující agregační metody:

  • Count()

  • Average(Sloupec)

  • Sum(Sloupec)

  • Max(Sloupec)

  • Min(Sloupec)

  • Where(Podmínka)

  • Any()

  • All(Podmínka)

Další informace najdete v tématu Přehled ovládacího prvku webového serveru LinqDataSource a Postupy: Seskupení a agregace dat pomocí ovládacího prvku LinqDataSource.

Platí pro