DataGridSortCommandEventArgs Class
Provides data for the SortCommand event of the DataGrid control. This class cannot be inherited.
Assembly: System.Web (in System.Web.dll)
| Name | Description | |
|---|---|---|
![]() | DataGridSortCommandEventArgs(Object, DataGridCommandEventArgs) | Initializes a new instance of the DataGridSortCommandEventArgs class. |
| Name | Description | |
|---|---|---|
![]() | CommandSource | Gets the source of the command. |
![]() | SortExpression | Gets the expression used to sort the DataGrid control. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
When sorting is enabled by setting the AllowSorting property of the DataGrid control to true, LinkButton controls are rendered in the header of each column that has the SortExpression property set. (For automatically generated columns, the SortExpression property contains the same value as the data field.) These links allow you to sort the DataGrid control by the selected column. The SortCommand event is raised when a LinkButton control is clicked.
For a list of initial property values for an instance of DataGridSortCommandEventArgs, see the DataGridSortCommandEventArgs constructor.
For more information about handling events, see NIB: Events and Delegates.
The following code example demonstrates how to specify and code a handler for the SortCommand event to sort a DataGrid control.
<%@ Page Language="VB" %> <%@ Import Namespace="System.Data" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Function CreateDataSource() As ICollection ' Create a Random object to mix up the order ' of items in the sample data. Dim randNum As Random = New Random() ' Create sample data for the DataGrid control. Dim dt As DataTable = New DataTable() ' 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 Dim dr As DataRow = dt.NewRow() dr(0) = i dr(1) = "Item " & randNum.Next(1, 15).ToString() dr(2) = 1.23 * randNum.Next(1, 15) dt.Rows.Add(dr) Next ' Persist the data source between posts to ' the server, in the session state. Session("Source") = dt Dim dv As DataView = New DataView(dt) Return dv End Function Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) ' Load sample data when the page is first loaded. If Not IsPostBack Then ItemsGrid.DataSource = CreateDataSource() ItemsGrid.DataBind() End If End Sub Sub Sort_Grid(ByVal sender As Object, _ ByVal 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 ' Rebind 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 Sub Check_Change(ByVal sender As Object, _ ByVal e As EventArgs) ' Allow or prevent sorting depending ' on the user's selection. ItemsGrid.AllowSorting = _ AllowSortingCheckBox.Checked ' After changing the property, rebind ' the data to refresh the DataGrid control. ' Retrieve 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) ' Rebind the data source. ItemsGrid.DataSource = dv ItemsGrid.DataBind() End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title> ExtractTemplateRows Example </title> </head> <body> <form id="form1" runat="server"> <div> <h3>DataGrid AllowSorting Example</h3> <p>Select whether to allow sorting in the DataGrid control.<br /> <asp:CheckBox id="AllowSortingCheckBox" Text="Allow sorting" AutoPostBack="True" Checked="True" OnCheckedChanged="Check_Change" runat="server"/></p> <hr /> <b>Product List</b> <asp:DataGrid id="ItemsGrid" BorderColor="black" BorderWidth="1" CellPadding="3" OnSortCommand="Sort_Grid" UseAccessibleHeader="true" AutoGenerateColumns="False" AllowSorting="True" runat="server"> <HeaderStyle BackColor="#00aaaa" /> <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> </div> </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 ' Manually register the event-handling method for the PageIndexChanged ' event of the DataGrid control. AddHandler ItemsGrid.SortCommand, AddressOf Sort_Grid 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 Sub Check_Change(sender As Object, e As EventArgs) ' Allow or prevent sorting depending on the user's selection. If AllowSortingCheckBox.Checked Then ItemsGrid.AllowSorting = True Else ItemsGrid.AllowSorting = False End If ' After changing the property, re-bind the data to ' refresh the DataGrid control. ' 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) ' Re-bind the data source. ItemsGrid.DataSource = dv ItemsGrid.DataBind() End Sub </script> <head runat="server"> <title>DataGrid SortCommand Example</title> </head> <body> <form id="form1" runat="server"> <h3>DataGrid SortCommand Example</h3> Select whether to allow sorting in the DataGrid control. <br /><br /> <b>Product List</b> <asp:DataGrid id="ItemsGrid" BorderColor="black" BorderWidth="1" CellPadding="3" 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> <hr /> <asp:CheckBox id="AllowSortingCheckBox" Text="Allow sorting" AutoPostBack="True" Checked="True" OnCheckedChanged="Check_Change" runat="server"/> </form> </body> </html>
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
.jpeg?cs-save-lang=1&cs-lang=vb)
.jpeg?cs-save-lang=1&cs-lang=vb)
.jpeg?cs-save-lang=1&cs-lang=vb)