In this blog we will know how to sort data in datagrid.

Program

Default.aspx code

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!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>Sort data in datagrid</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:DataGrid id="DataGrid1" BackColor="#FF9999" OnSortCommand="DataGrid1_SortCommand" AllowSorting="True" AutoGenerateColumns="false" runat="server" Width="328px">

<HeaderStyle BackColor="#FFCC99" />

<Columns>

<asp:BoundColumn DataField="sname" SortExpression="sname" HeaderText="Name"></asp:BoundColumn>

<asp:BoundColumn DataField="saddress" SortExpression="saddress" HeaderText="Address"></asp:BoundColumn>

</Columns>

</asp:DataGrid>

</div>

</form>

</body>

</html>

Default.aspx.vb code

Imports System.Data.SqlClient

Imports System.Data

Partial Class _Default

Inherits System.Web.UI.Page

Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings.Item("ConnectionString").ToString()

Dim con As New SqlConnection(strConnString)

Dim sqlda As SqlDataAdapter

Dim com As SqlCommand

Dim ds As DataSet

Dim str As String

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Not IsPostBack Then

bindgrid("sname")

End If

End Sub

Sub bindgrid(ByVal s As String)

Try

con.Open()

str = "select * from student order by " & s

com = New SqlCommand(str, con)

Dim reader As SqlDataReader = com.ExecuteReader

DataGrid1.DataSource = reader

DataGrid1.DataBind()

con.Close()

Catch ex As Exception

MsgBox(ex.Message)

End Try

End Sub

Protected Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles DataGrid1.SortCommand

bindgrid(e.SortExpression)

End Sub

End Class