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中排序问题
文章源于:http://hbruida.cn/article/gesecc.html