Rediger

Del via


LinqDataSource.OrderGroupsBy Property

Definition

Gets or sets the fields that are used for ordering grouped data.

public:
 property System::String ^ OrderGroupsBy { System::String ^ get(); void set(System::String ^ value); };
public string OrderGroupsBy { get; set; }
member this.OrderGroupsBy : string with get, set
Public Property OrderGroupsBy As String

Property Value

A string that is used to create the Order Groups By clause.

Examples

The following example shows how to group the data by using two properties, and how to sort the grouped data by using one of those properties. The data from a table named Products is grouped by using properties named CategoryID and Discontinued. The grouped data is sorted by the CategoryID property.

<asp:LinqDataSource 
   ContextTypeName="DataClassesDataContext" 
   TableName="Products" 
   GroupBy="new (CategoryID, Discontinued)" 
   OrderGroupsBy="Key.CategoryID"
   Select="new(Key.CategoryID, Key.Discontinued, Average(UnitPrice) As AvePrice)" 
   ID="LinqDataSource1" 
   runat="server" >
</asp:LinqDataSource>
<asp:LinqDataSource 
   ContextTypeName="DataClassesDataContext" 
   TableName="Products" 
   GroupBy="new (CategoryID, Discontinued)" 
   OrderGroupsBy="Key.CategoryID"
   Select="new(Key.CategoryID, Key.Discontinued, Average(UnitPrice) As AvePrice)" 
   ID="LinqDataSource1" 
   runat="server" >
</asp:LinqDataSource>

The following example shows how to group the data by using a property, and how to sort it based on the results of an aggregation function. The data from the Products table is grouped by using the CategoryID property. It is sorted based on the average of the UnitPrice property within each group.

<asp:LinqDataSource 
   ContextTypeName="DataClassesDataContext" 
   TableName="Products" 
   GroupBy="CategoryID" 
   OrderGroupsBy="Average(UnitPrice)"
   Select="new(Key, Average(UnitPrice) As AvePrice)" 
   ID="LinqDataSource1" 
   runat="server" >
</asp:LinqDataSource>
<asp:LinqDataSource 
   ContextTypeName="DataClassesDataContext" 
   TableName="Products" 
   GroupBy="CategoryID" 
   OrderGroupsBy="Average(UnitPrice)"
   Select="new(Key, Average(UnitPrice) As AvePrice)" 
   ID="LinqDataSource1" 
   runat="server" >
</asp:LinqDataSource>

Remarks

You use the OrderGroupsBy property to specify how the groups of data are sorted. For example, you can group by the CategoryID property and then sort each category ID group by the average of the Price property.

You can set the OrderGroupsBy property only when you have grouped the data. If you set the OrderGroupsBy property without setting the GroupBy property, the LinqDataSource control throws an exception.

The property that is used to sort the data must be either a property that is used to group the data, or the result of an aggregation function on the grouped data. To specify how the data is sorted, you can add a space and the string "Ascending", "ASC", "Descending", or "DESC" to a property name in the OrderGroupsBy string.

You can specify more than one property in the OrderGroupsBy property. Separate each property by using a comma.

Applies to