Asp.net中,点击GridView表头实现数据的排序
一、实现该功能的基本工作。
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(); } } }
三、实现单击表头,实现重新排列,效果如下:
四、总结
还没有开始了解需求的时候,感觉挺难的;当开始了解需求的时候,感觉没那么难;当真正实现的时候,真的没那么难。难的事,总是想逃避困难的心。很多事实证明:只要你相信自己,淡定的面对困难,很多问题将不再是问题。所以呢。。。
明星效应。很简单,在一个领域保持顶尖水平,比在一两个领域保持领先水平和五六个领域保持一般水准都要更有价值、并且收益更好。
有悖常识的真相:让未来更开放的方式,正是专注的去做好一件事情。这个世界上最成功的人,他们在某一领域获得成功之后,可通过经营杠杆进入任何他们想要涉足的领域。而这都得依赖于他们曾极致的专注在做好一件事情上。