DataGridColumn.SortExpression DataGridColumn.SortExpression DataGridColumn.SortExpression DataGridColumn.SortExpression Property

Definition

Ruft den Namen des Felds oder Ausdrucks ab, der an die OnSortCommand(DataGridSortCommandEventArgs)-Methode übergeben wird, wenn eine Spalte für die Sortierung ausgewählt wurde, oder legt diesen fest.Gets or sets the name of the field or expression to pass to the OnSortCommand(DataGridSortCommandEventArgs) method when a column is selected for sorting.

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

Eigenschaftswert

Der Name des Felds, der an OnSortCommand(DataGridSortCommandEventArgs) übergeben wird, wenn eine Spalte für die Sortierung ausgewählt wurde.The name of the field to pass to OnSortCommand(DataGridSortCommandEventArgs) when a column is selected for sorting. Der Standardwert ist Emptysein.The default value is Empty.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie mit der SortExpression Eigenschaft, um den Namen des Felds für die Verwendung für die Sortierung anzugeben.The following code example demonstrates how to use the SortExpression property to specify the field name to use for sorting.


<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<!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" >
   <script runat="server">
 
      ICollection CreateDataSource()
      {
      
         // Create a Random object to mix up the order of items in the 
         // sample data.
         Random Rand_Num = new Random();

         // Create sample data for the DataGrid control.
         DataTable dt = new DataTable();
         DataRow dr;
 
         // Define the columns of the table.
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(String)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(Double)));
 
         // Populate the table with sample values.
         for (int i=0; i<=8; i++) 
         {

            dr = dt.NewRow();
 
            dr[0] = i;
            dr[1] = "Item " + Rand_Num.Next(1, 15).ToString();
            dr[2] = 1.23 * Rand_Num.Next(1, 15);
 
            dt.Rows.Add(dr);
         
         }

         // To persist the data source between posts to the server,
         // store it in session state.  
         Session["Source"] = dt;
 
         DataView dv = new DataView(dt);

         return dv;
      
      }
 
      void Page_Load(Object sender, EventArgs e)
      { 
 
         // Load sample data only once, when the page is first loaded.
         if (!IsPostBack)
         { 
         
            ItemsGrid.DataSource = CreateDataSource();
            ItemsGrid.DataBind();
         
         }

      }

      void Sort_Grid(Object sender, DataGridSortCommandEventArgs e)
      { 

         // Retrieve the data source from session state.
         DataTable dt = (DataTable)Session["Source"];

         // Create a DataView from the DataTable.
         DataView dv = new DataView(dt);

         // The DataView provides an easy way to sort. Simply set the
         // Sort property with the name of the field to sort by.
         dv.Sort = e.SortExpression;

         // Re-bind the data source and specify that it should be sorted
         // by the field specified in the SortExpression property.
         ItemsGrid.DataSource = dv;
         ItemsGrid.DataBind();

      }

   </script>
 
<head runat="server">
    <title>DataGrid SortExpression Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGrid SortExpression Example</h3>
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           OnSortCommand="Sort_Grid"
           AutoGenerateColumns="False"
           AllowSorting="True"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle>

         <Columns>

            <asp:BoundColumn DataField="IntegerValue" 
                 SortExpression="IntegerValue"
                 HeaderText="Item"/>

            <asp:BoundColumn DataField="StringValue"
                 SortExpression="StringValue" 
                 HeaderText="Description"/>

            <asp:BoundColumn DataField="CurrencyValue" 
                 HeaderText="Price"
                 SortExpression="CurrencyValue"
                 DataFormatString="{0:c}">

               <ItemStyle HorizontalAlign="Right">
               </ItemStyle>

            </asp:BoundColumn>

         </Columns> 
 
      </asp:DataGrid>
 
   </form>
 
</body>
</html>


<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<!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" >
   <script runat="server">
 
      Function CreateDataSource() As ICollection 
      
         ' Create a Random object to mix up the order of items in the
         ' sample data.
         Dim Rand_Num As Random = New Random()

         ' Create sample data for the DataGrid control.
         Dim dt As DataTable = New DataTable()
         Dim dr As DataRow
 
         ' Define the columns of the table.
         dt.Columns.Add(new DataColumn("IntegerValue", GetType(Int32)))
         dt.Columns.Add(new DataColumn("StringValue", GetType(String)))
         dt.Columns.Add(new DataColumn("CurrencyValue", GetType(Double)))
 
         ' Populate the table with sample values.
         Dim i As Integer

         For i = 0 To 8 
        
            dr = dt.NewRow()
 
            dr(0) = i
            dr(1) = "Item " & Rand_Num.Next(1, 15).ToString()
            dr(2) = 1.23 * Rand_Num.Next(1, 15)
 
            dt.Rows.Add(dr)
         
         Next i

         ' To persist the data source between posts to the server,
         ' store it in session state.  
         Session("Source") = dt
 
         Dim dv As DataView = New DataView(dt)

         Return dv
      
      End Function
 
      Sub Page_Load(sender As Object, e As EventArgs) 
 
         ' Load sample data only once, when the page is first loaded.
         If Not IsPostBack Then 
         
            ItemsGrid.DataSource = CreateDataSource()
            ItemsGrid.DataBind()
         
         End If

      End Sub

      Sub Sort_Grid(sender As Object, e As DataGridSortCommandEventArgs) 

         ' Retrieve the data source from session state.
         Dim dt As DataTable = CType(Session("Source"), DataTable)

         ' Create a DataView from the DataTable.
         Dim dv As DataView = New DataView(dt)

         ' The DataView provides an easy way to sort. Simply set the
         ' Sort property with the name of the field to sort by.
         dv.Sort = e.SortExpression

         ' Re-bind the data source and specify that it should be sorted
         ' by the field specified in the SortExpression property.
         ItemsGrid.DataSource = dv
         ItemsGrid.DataBind()

      End Sub

   </script>
 
<head runat="server">
    <title>DataGrid SortExpression Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGrid SortExpression Example</h3>
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           OnSortCommand="Sort_Grid"
           AutoGenerateColumns="False"
           AllowSorting="True"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle>

         <Columns>

            <asp:BoundColumn DataField="IntegerValue" 
                 SortExpression="IntegerValue"
                 HeaderText="Item"/>

            <asp:BoundColumn DataField="StringValue"
                 SortExpression="StringValue" 
                 HeaderText="Description"/>

            <asp:BoundColumn DataField="CurrencyValue" 
                 HeaderText="Price"
                 SortExpression="CurrencyValue"
                 DataFormatString="{0:c}">

               <ItemStyle HorizontalAlign="Right">
               </ItemStyle>

            </asp:BoundColumn>

         </Columns> 
 
      </asp:DataGrid>
 
   </form>
 
</body>
</html>

Hinweise

Verwenden der SortExpression Eigenschaft, um anzugeben, oder bestimmen Sie den Namen des Felds Übergabe an die OnSortCommand Methode, wenn eine Spalte für die Sortierung ausgewählt wird.Use the SortExpression property to specify or determine the name of the field to pass to the OnSortCommand method when a column is selected for sorting.

Hinweis

Diese Eigenschaft ist die Spalte nicht auf ein Feld in der Datenquelle zu binden.This property does not bind the column to a field in data source. Um eine Spalte in einem Feld zu binden, finden Sie in der Dokumentation für den Typ der bestimmten Spalte.To bind a column to a field, see the documentation for the specific column type.

Wenn das Sortieren aktiviert ist, LinkButton Steuerelemente im Headerbereich der einzelnen Spalten dargestellt werden, in denen die SortExpression festgelegt wird.When sorting is enabled, LinkButton controls are rendered in the heading section of each column where the SortExpression property is set.

Hinweis

Wenn die AutoGenerateColumns -Eigenschaftensatz auf true, wird die SortExpression -Eigenschaft für jede Spalte in der DataGrid -Steuerelement, das die Datenbindung unterstützt wird automatisch festgelegt, mit dem Feldnamen, die an die Spalte gebunden.When the AutoGenerateColumns property is set to true, the SortExpression property for each column in the DataGrid control that supports data binding is automatically set with the field name bound to the column. Wenn die AutoGenerateColumns -Eigenschaftensatz auf false, müssen Sie manuell die SortExpression -Eigenschaft mit dem Feldnamen gebunden, auf die Spalte für jede Spalte, die Sie für die Sortierung aktivieren möchten.If the AutoGenerateColumns property is set to false, you need to manually set the SortExpression property with the field name bound to the column for each column that you want to enable sorting for.

Diese LinkButton Steuerelementen können Sie zum Sortieren der DataGrid Steuerelements anhand der ausgewählten Spalte.These LinkButton controls allow you to sort the DataGrid control by the selected column. Wenn eine LinkButton Steuern für eine Spalte geklickt wird, die SortCommand Ereignis wird ausgelöst.When a LinkButton control for a column is clicked, the SortCommand event is raised. Den Wert des der SortExpression -Eigenschaft für die ausgewählte Spalte wird zum Übergeben der OnSortCommand Ereignishandler als Teil der DataGridSortCommandEventArgs Objekt.The value of the SortExpression property for the selected column is passed to the OnSortCommand event handler as part of the DataGridSortCommandEventArgs object.

Gilt für:

Siehe auch