ASP.NET GridView Paging and Sorting
Below is the sample to include Sorting and Paging in ASP.Net GridView.
ASPX Code
<asp:GridView ID="grd" runat="server" AutoGenerateColumns="False"
AllowSorting="true" OnSorting="grd_Sorting"
AllowPaging="true" PageSize="50" OnPageIndexChanging="grd_PageIndexChanging">
Code Behind
protected void grd_Sorting(object sender, GridViewSortEventArgs e)
{
try
{
mDT = GetData();
SetSortDirection(SortDirection);
if (mDT != null)
{
mDT.DefaultView.Sort = e.SortExpression + " " + _sortDirection;
grd.DataSource = mDT;
grd.DataBind();
SortDirection = _sortDirection;
}
}
catch(Exception exp)
{
}
}
protected void grd_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
grdList.PageIndex = e.NewPageIndex;
try
{
mDT = GetData();
SetSortDirection(SortDirection);
if (mDT != null)
{
grd.DataSource = mDT;
grd.DataBind();
SortDirection = _sortDirection;
}
}
catch (Exception exp)
{
}
}
GridView Sort not working when AutoGenerateColumns = False
Need to set SortExpression to the columns manually (SortExpression=”datafield” ), when AutoGenerateColumns=”false”. If AutoGenerateColumns=”True”, then DataGrid sets SortExpression automatically based on the field name.
<asp:BoundField DataField="datacolumn" SortExpression="datacolumn" HeaderText="Data Header">