1、设置AllowSorting="True"
2、设置需要排序的列
<asp:BoundField DataField="Result" HeaderText="成绩" SortExpression="Result" />
3、添加函数GridView1_Sorting,不多解释,直接上程序,参考。
排序
using
System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
bindGridView();
}
}
private void bindGridView()
{
SqlConnection sqlcon = new SqlConnection( @" Data Source=PC-20100627ZYHG;Initial Catalog=peter;Integrated Security=True " );
sqlcon.Open();
SqlDataAdapter sqlAd = new SqlDataAdapter( " select * from Student " ,sqlcon);
DataSet ds = new DataSet();
sqlAd.Fill(ds, " student " );
sqlcon.Close();
this .GridView1.DataSource = ds;
this .GridView1.DataBind();
}
protected void GridView1_Sorting( object sender, GridViewSortEventArgs e)
{
DataControlField clm = null ;
for ( int i = 0 ; i < this .GridView1.Columns.Count; i ++ )
{
if ( this .GridView1.Columns[i].SortExpression == e.SortExpression)
{
clm = this .GridView1.Columns[i];
break ;
}
}
if (clm == null ) return ;
if (e.SortExpression.ToLower().IndexOf( " desc " ) > 0 )
{
clm.SortExpression = e.SortExpression.ToLower().Replace( " desc " , " asc " );
}
else
{
if (e.SortExpression.ToLower().IndexOf( " asc " ) > 0 )
{
clm.SortExpression = e.SortExpression.ToLower().Replace( " asc " , " desc " );
}
else
{
clm.SortExpression = e.SortExpression.ToLower() + " desc " ;
}
}
this .bindGridView(clm.SortExpression);
}
private void bindGridView( string strSort)
{
SqlConnection sqlcon = new SqlConnection( @" Data Source=PC-20100627ZYHG;Initial Catalog=peter;Integrated Security=True " );
sqlcon.Open();
SqlDataAdapter sqlAd = new SqlDataAdapter( " select * from Student " , sqlcon);
DataSet ds = new DataSet();
sqlAd.Fill(ds, " student " );
sqlcon.Close();
ds.Tables[ 0 ].DefaultView.Sort = strSort;
this .GridView1.DataSource = ds.Tables[ 0 ].DefaultView;
this .GridView1.DataBind();
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
bindGridView();
}
}
private void bindGridView()
{
SqlConnection sqlcon = new SqlConnection( @" Data Source=PC-20100627ZYHG;Initial Catalog=peter;Integrated Security=True " );
sqlcon.Open();
SqlDataAdapter sqlAd = new SqlDataAdapter( " select * from Student " ,sqlcon);
DataSet ds = new DataSet();
sqlAd.Fill(ds, " student " );
sqlcon.Close();
this .GridView1.DataSource = ds;
this .GridView1.DataBind();
}
protected void GridView1_Sorting( object sender, GridViewSortEventArgs e)
{
DataControlField clm = null ;
for ( int i = 0 ; i < this .GridView1.Columns.Count; i ++ )
{
if ( this .GridView1.Columns[i].SortExpression == e.SortExpression)
{
clm = this .GridView1.Columns[i];
break ;
}
}
if (clm == null ) return ;
if (e.SortExpression.ToLower().IndexOf( " desc " ) > 0 )
{
clm.SortExpression = e.SortExpression.ToLower().Replace( " desc " , " asc " );
}
else
{
if (e.SortExpression.ToLower().IndexOf( " asc " ) > 0 )
{
clm.SortExpression = e.SortExpression.ToLower().Replace( " asc " , " desc " );
}
else
{
clm.SortExpression = e.SortExpression.ToLower() + " desc " ;
}
}
this .bindGridView(clm.SortExpression);
}
private void bindGridView( string strSort)
{
SqlConnection sqlcon = new SqlConnection( @" Data Source=PC-20100627ZYHG;Initial Catalog=peter;Integrated Security=True " );
sqlcon.Open();
SqlDataAdapter sqlAd = new SqlDataAdapter( " select * from Student " , sqlcon);
DataSet ds = new DataSet();
sqlAd.Fill(ds, " student " );
sqlcon.Close();
ds.Tables[ 0 ].DefaultView.Sort = strSort;
this .GridView1.DataSource = ds.Tables[ 0 ].DefaultView;
this .GridView1.DataBind();
}
}