一、实现该功能的基本工作。
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(); } } }三、实现单击表头,实现重新排列,效果如下:
四、总结
还没有开始了解需求的时候,感觉挺难的;当开始了解需求的时候,感觉没那么难;当真正实现的时候,真的没那么难。难的事,总是想逃避困难的心。很多事实证明:只要你相信自己,淡定的面对困难,很多问题将不再是问题。所以呢。。。
时间: 2024-10-10 21:11:27