1. 程式人生 > >Asp.net中,點選GridView表頭實現資料的排序

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();         
        }
   }
}

三、實現單擊表頭,實現重新排列,效果如下:

       

四、總結

      還沒有開始瞭解需求的時候,感覺挺難的;當開始瞭解需求的時候,感覺沒那麼難;當真正實現的時候,真的沒那麼難。難的事,總是想逃避困難的心。很多事實證明:只要你相信自己,淡定的面對困難,很多問題將不再是問題。所以呢。。。