一、基本工作
1、 先添加一个GridView,取名为gvData。
2、 设置该控件的属性:
操作步骤如下。
设置属性
这4个属性,还要设置该控件AllowSorting=“True”,5点缺一不可。
3、 编写该控件的gvData_Sorting事件
usingSystem.Data;
usingSystem.Data.SqlClient;
namespace 排序
{
public partial class WebForm2 :System.Web.UI.Page
{
protected voidPage_Load(object sender, EventArgs e)
{
if(!IsPostBack )
{
//先给它一个默认状态,因为下面的bin()方法,需要用到状态值。
ViewState["SortOrder"] = "depID";
ViewState["OrderDire"] = "ASC";
bind();
}
}
//单击dataGrid表头字段时触发给事件,把对应字段的DataField的值传过来,重新设置ViewState["SortOrder"]和ViewState["OrderDire"]属性。
protected voidgvData_Sorting(objectsender, GridViewSortEventArgs e)
{
stringsPage = e.SortExpression;
if(ViewState["SortOrder"].ToString()== sPage)
{
if(ViewState["OrderDire"].ToString()== "Desc")
ViewState["OrderDire"] = "ASC";
else
ViewState["OrderDire"] = "Desc";
}
else
{
ViewState["SortOrder"] =e.SortExpression;
}
bind();
}
//获取数据,通过自定义视图来实现排序,及重新排序。
public voidbind()
{
SqlConnection con= new SqlConnection("server=.;database=department;uid='sa';pwd='123456'");
con.Open();
string str= "select * from TDepartment";
SqlCommand cmd= new SqlCommand(str,con);
SqlDataAdaptersqlDA = new SqlDataAdapter(cmd);
DataTabletabData = new DataTable();
sqlDA.Fill(tabData);
//通过自定义视图来实现排序
DataViewview = tabData.DefaultView;
stringsort = (string)ViewState["SortOrder"] + "" + (string)ViewState["OrderDire"];
view.Sort = sort;
gvData.DataSource = view;
gvData.DataBind();
con.Close();
}
}
}
三、实现单击表头,实现重新排列,效果如下: