GridView.AllowSorting Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob das Sortierfeature aktiviert ist, oder legt diesen fest.Gets or sets a value indicating whether the sorting feature is enabled.

public:
 virtual property bool AllowSorting { bool get(); void set(bool value); };
public virtual bool AllowSorting { get; set; }
member this.AllowSorting : bool with get, set
Public Overridable Property AllowSorting As Boolean

Eigenschaftswert

true, wenn das Sortierfeature aktiviert ist, andernfalls false.true if the sorting feature is enabled; otherwise, false. Die Standardeinstellung ist false.The default is false.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die AllowSorting -Eigenschaft zum Aktivieren der Sortierung GridView in einem-Steuerelement verwendet wird, wenn automatisch generierte Spalten verwendet werden.The following example demonstrates how to use the AllowSorting property to enable sorting in a GridView control when automatically generated columns are used.


<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView AllowSorting Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridView AllowSorting Example</h3>

      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSource" 
        autogeneratecolumns="true"
        emptydatatext="No data available." 
        allowsorting="true" 
        runat="server">
                
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSource"
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
        
    </form>
  </body>
</html>


<%@ Page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView AllowSorting Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridView AllowSorting Example</h3>

      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSource" 
        autogeneratecolumns="true"
        emptydatatext="No data available." 
        allowsorting="true" 
        runat="server">
                
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSource"
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
        
    </form>
  </body>
</html>

Im folgenden Beispiel wird veranschaulicht, wie die AllowSorting -Eigenschaft zum Aktivieren der Sortierung GridView in einem- Columns Steuerelement verwendet wird, wenn eine Auflistung definiert wird.The following example demonstrates how to use the AllowSorting property to enable sorting in a GridView control when a Columns collection is defined. Ein Bild wird dem Header der Spalte, die sortiert wird, auch Programm gesteuert hinzugefügt, um die Sortierrichtung anzugeben.An image is also programmatically added to the header of the column being sorted to indicate the sort direction. Sie müssen ihre eigenen Images angeben, damit dieses Beispiel funktioniert.You must provide your own images for this sample to work.


<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void CustomersGridView_RowCreated(Object sender, GridViewRowEventArgs e)
  {
    
    // Use the RowType property to determine whether the 
    // row being created is the header row. 
    if (e.Row.RowType == DataControlRowType.Header)
    {
      // Call the GetSortColumnIndex helper method to determine
      // the index of the column being sorted.
      int sortColumnIndex = GetSortColumnIndex();
      
      if (sortColumnIndex != -1)
      {
        // Call the AddSortImage helper method to add
        // a sort direction image to the appropriate
        // column header. 
        AddSortImage(sortColumnIndex, e.Row);
      }
    }
  }

  // This is a helper method used to determine the index of the
  // column being sorted. If no column is being sorted, -1 is returned.
  int GetSortColumnIndex()
  {

    // Iterate through the Columns collection to determine the index
    // of the column being sorted.
    foreach (DataControlField field in CustomersGridView.Columns)
    {
      if (field.SortExpression == CustomersGridView.SortExpression)
      {
        return CustomersGridView.Columns.IndexOf(field);
      }
    }

    return -1;
  }

  // This is a helper method used to add a sort direction
  // image to the header of the column being sorted.
  void AddSortImage(int columnIndex, GridViewRow headerRow)
  {
    
    // Create the sorting image based on the sort direction.
    Image sortImage = new Image();
    if (CustomersGridView.SortDirection == SortDirection.Ascending)
    {
      sortImage.ImageUrl = "~/Images/Ascending.jpg";
      sortImage.AlternateText = "Ascending Order";
    }
    else
    {
      sortImage.ImageUrl = "~/Images/Descending.jpg";
      sortImage.AlternateText = "Descending Order";
    }

    // Add the image to the appropriate header cell.
    headerRow.Cells[columnIndex].Controls.Add(sortImage);
    
  }
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView AllowSorting Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridView AllowSorting Example</h3>

      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSource" 
        autogeneratecolumns="false"
        emptydatatext="No data available." 
        allowsorting="true"
        onrowcreated="CustomersGridView_RowCreated"
        runat="server">
        
        <columns>
          <asp:boundfield datafield="CustomerID"
            headertext="Customer ID"
            headerstyle-wrap="false" 
            sortexpression="CustomerID"/>
          <asp:boundfield datafield="CompanyName"
            headertext="CompanyName"
            headerstyle-wrap="false"
            sortexpression="CompanyName"/>
          <asp:boundfield datafield="Address"
            headertext="Address"
            headerstyle-wrap="false"
            sortexpression="Address"/>
          <asp:boundfield datafield="City"
            headertext="City"
            headerstyle-wrap="false"
            sortexpression="City"/>
          <asp:boundfield datafield="PostalCode"
            headertext="Postal Code"
            headerstyle-wrap="false"
            sortexpression="PostalCode" />
          <asp:boundfield datafield="Country"
            headertext="Country"
            headerstyle-wrap="false"
            sortexpression="Country"/>         
        </columns>
                
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSource"
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
        
    </form>
  </body>
</html>


<%@ Page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Sub CustomersGridView_RowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
    
    ' Use the RowType property to determine whether the 
    ' row being created is the header row. 
    If e.Row.RowType = DataControlRowType.Header Then
    
      ' Call the GetSortColumnIndex helper method to determine
      ' the index of the column being sorted.
      Dim sortColumnIndex As Integer = GetSortColumnIndex()
      
      If sortColumnIndex <> -1 Then
      
        ' Call the AddSortImage helper method to add
        ' a sort direction image to the appropriate
        ' column header. 
        AddSortImage(sortColumnIndex, e.Row)
    
      End If
      
    End If
    
  End Sub

  ' This is a helper method used to determine the index of the
  ' column being sorted. If no column is being sorted, -1 is returned.
  Function GetSortColumnIndex() As Integer

    ' Iterate through the Columns collection to determine the index
    ' of the column being sorted.
    Dim field As DataControlField
    For Each field In CustomersGridView.Columns
    
      If field.SortExpression = CustomersGridView.SortExpression Then
      
        Return CustomersGridView.Columns.IndexOf(field)

      End If
      
    Next

    Return -1
      
  End Function

  ' This is a helper method used to add a sort direction
  ' image to the header of the column being sorted.
  Sub AddSortImage(ByVal columnIndex As Integer, ByVal row As GridViewRow)

    ' Create the sorting image based on the sort direction.
    Dim sortImage As New Image()
    If CustomersGridView.SortDirection = SortDirection.Ascending Then
    
      sortImage.ImageUrl = "~/Images/Ascending.jpg"
      sortImage.AlternateText = "Ascending Order"
    
    Else
    
      sortImage.ImageUrl = "~/Images/Descending.jpg"
      sortImage.AlternateText = "Descending Order"
    
    End If
    ' Add the image to the appropriate header cell.
    row.Cells(columnIndex).Controls.Add(sortImage)
    
  End Sub
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView AllowSorting Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridView AllowSorting Example</h3>

      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSource" 
        autogeneratecolumns="false"
        emptydatatext="No data available." 
        allowsorting="true"
        onrowcreated="CustomersGridView_RowCreated"
        runat="server">
        
        <columns>
          <asp:boundfield datafield="CustomerID"
            headertext="Customer ID"
            headerstyle-wrap="false" 
            sortexpression="CustomerID"/>
          <asp:boundfield datafield="CompanyName"
            headertext="CompanyName"
            headerstyle-wrap="false"
            sortexpression="CompanyName"/>
          <asp:boundfield datafield="Address"
            headertext="Address"
            headerstyle-wrap="false"
            sortexpression="Address"/>
          <asp:boundfield datafield="City"
            headertext="City"
            headerstyle-wrap="false"
            sortexpression="City"/>
          <asp:boundfield datafield="PostalCode"
            headertext="Postal Code"
            headerstyle-wrap="false"
            sortexpression="PostalCode" />
          <asp:boundfield datafield="Country"
            headertext="Country"
            headerstyle-wrap="false"
            sortexpression="Country"/>         
        </columns>
                
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSource"
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
        
    </form>
  </body>
</html>

Hinweise

Wenn ein Datenquellen Steuerelement, das die Sortierung unterstützt GridView , an das GridView -Steuerelement gebunden ist, kann das Steuerelement die Funktionen des Datenquellen-Steuer Elements nutzen und automatische Sortierungs Funktionen bereitstellen.When a data source control that supports sorting is bound to the GridView control, the GridView control can take advantage of the data source control's capabilities and provide automatic sorting functionality. Wenn das GridView Steuerelement an eine Datenquelle gebunden ist, indem DataSource die-Eigenschaft Programm gesteuert festgelegt wird, müssen Sie die Sortier Sorting Funktion mithilfe des-Ereignisses bereitstellen.When the GridView control is bound to a data source by setting the DataSource property programmatically, you must provide the sorting functionality by using the Sorting event.

Hinweis

Für unterschiedliche Datenquellen gelten andere Anforderungen, um Ihre Sortierfunktionen zu aktivieren.Different data sources have different requirements for enabling their sorting capabilities. Informationen zum Bestimmen der Anforderungen finden Sie in der Dokumentation für die jeweilige Datenquelle.To determine the requirements, see the documentation for the specific data source.

Um die Sortierung zu aktivieren, AllowSorting legen Sie truedie-Eigenschaft auf fest.To enable sorting, set the AllowSorting property to true. Wenn die Sortierung aktiviert ist, wird der Überschriften Text für jedes Spalten SortExpression Feld mit dessen Eigenschaften Satz als Link Schaltfläche angezeigt.When sorting is enabled, the heading text for each column field with its SortExpression property set is displayed as a link button.

Hinweis

Die SortExpression -Eigenschaft für ein automatisch generiertes Spalten Feld wird automatisch aufgefüllt.The SortExpression property for an automatically generated columns field is automatically populated. Wenn Sie Ihre eigenen Spalten über die Columns Auflistung definieren, müssen Sie die SortExpression -Eigenschaft für jede Spalte festlegen. andernfalls wird in der-Spalte die Link Schaltfläche nicht in der Kopfzeile angezeigt.If you define your own columns through the Columns collection, you must set the SortExpression property for each column; otherwise, the column will not display the link button in the header.

Wenn Sie auf die Link Schaltfläche für eine Spalte klicken GridView , werden die Elemente im Steuerelement basierend auf dem Sortier Ausdruck sortiert.Clicking the link button for a column causes the items in the GridView control to be sorted based on the sort expression. In der Regel ist der Sortierungs Ausdruck einfach der Name des Felds, das in der Spalte angezeigt wird GridView . Dies bewirkt, dass das Steuerelement in Bezug auf diese Spalte sortiert wird.Typically, the sort expression is simply the name of the field displayed in the column, which causes the GridView control to sort with respect to that column. Um nach mehreren Feldern zu sortieren, verwenden Sie einen Sortierungs Ausdruck, der eine durch Trennzeichen getrennte Liste von Feldnamen enthält.To sort by multiple fields, use a sort expression that contains a comma-separated list of field names. Sie können den Sortierungs Ausdruck, den GridView das Steuerelement anwendet, mithilfe SortExpression der-Eigenschaft bestimmen.You can determine the sort expression that the GridView control is applying by using the SortExpression property. Wenn Sie auf die Link Schaltfläche einer Spalte klicken, wird die Sortierrichtung zwischen aufsteigender und absteigender Reihenfolge gewechselt.Clicking a column's link button repeatedly toggles the sort direction between ascending and descending order. Verwenden Sie die SortDirection -Eigenschaft, um die aktuelle Sortierreihenfolge zu bestimmen.To determine the current sort direction, use the SortDirection property.

Das GridView -Steuerelement bietet mehrere Ereignisse, die Sie verwenden können, um eine benutzerdefinierte Aktion auszuführen, wenn eine Sortierung auftritt.The GridView control provides several events that you can use to perform a custom action when sorting occurs. In der folgenden Tabelle sind die verfügbaren Ereignisse aufgeführt.The following table lists the available events.

eventEvent BeschreibungDescription
Sorted Tritt ein, wenn auf den Link zum Sortieren einer Spalte geklickt wird, allerdings nachdem das GridView-Steuerelement den Sortiervorgang behandelt hat.Occurs when the hyperlink to sort a column is clicked, but after the GridView control handles the sort operation. Dieses Ereignis wird häufig verwendet, um eine Aufgabe auszuführen, nachdem der Benutzer auf einen Link geklickt hat, um eine Spalte zu sortieren.This event is commonly used to perform a task after the user clicks a hyperlink to sort a column.
Sorting Tritt ein, wenn auf den Link zum Sortieren einer Spalte geklickt wird, allerdings bevor das GridView-Steuerelement den Sortiervorgang behandelt.Occurs when the hyperlink to sort a column is clicked, but before the GridView control handles the sort operation. Dieses Ereignis wird häufig verwendet, um den Sortiervorgang abzubrechen oder um eine benutzerdefinierte Sortier Routine auszuführen.This event is often used to cancel the sorting operation or to perform a custom sorting routine.

Gilt für:

Siehe auch