GridView中排序问题

1.设置AllowSorting="True"

2.点击GridView的事件onsorting="GridView1_Sorting"

3.利用GridView的Sort属性,页面在ViewState中存储主键和排序,默认是升序,ViewState["OrderDire"] = "ASC";;由于要在分页事件中实现能再排回来,所以再在分页事件中添加ViewState["OrderDire"] = "Desc";

全部代码如下:

public partial class WebForm1 : System.Web.UI.Page

   {

       string strcon="Data Source=.;Initial Catalog=db_TomeTwo;Integrated Security=True";


       protected void Page_Load(object sender, EventArgs e)

       {

           if (!IsPostBack)

           {

               ViewState["SortOrder"] = "au_id";

               ViewState["OrderDire"] = "ASC";

               Bind();


           }

       }

       public void Bind()

       {


           string strsel="select * from authors";

           SqlConnection conn=new SqlConnection (strcon);

           SqlCommand com=new SqlCommand (strsel,conn);

           SqlDataAdapter sda=new SqlDataAdapter (com);

           DataSet ds=new DataSet();

           conn.Open();

           sda.Fill(ds,"authors");

           DataView dw = ds.Tables["authors"].DefaultView;

           string strsort = (string)ViewState["SortOrder"] + "," + (string)ViewState["OrderDire"];

           //Response.Write(strsort);

           dw.Sort = strsort;


           //GridView1.DataSource=ds.Tables["authors"];

           GridView1.DataSource = dw;

           GridView1.DataBind();

           conn.Close();


       }


       protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

       {

           GridView1.PageIndex = e.NewPageIndex;

           Bind();

       }


       protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)

       {

           string spage = 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();

       }

   }


你可能感兴趣的:(gridview的排序处理)