GridView 字段排序

前台代码:

<asp:GridView ID="GView1" runat="server" Height="10px" Width="950px" AllowSorting="true"

     OnSorting="GridView1_Sorting">

</asp:GridView>

注解:

AllowSorting="true" //该属性设置将使用控件的排序功能

OnSorting="GridView1_Sorting"  //调用排序的方法实现

 

后台代码:

排序实现的方法:

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)

{

     string sortExpression = e.SortExpression;

     if (GridViewSortDirection == SortDirection.Ascending) //设置排序方向

     {

         GridViewSortDirection = SortDirection.Descending;

         SortGridView(sortExpression, " DESC");

      }

      else

      {

         GridViewSortDirection = SortDirection.Ascending;

         SortGridView(sortExpression, " ASC");

      }

}

注解:

//GridViewSortDirection就是接下来定义的函数名

//SortGridView也是下面定义的函数

 

protected SortDirection GridViewSortDirection

{

    get

    {

         if (ViewState["sortDirection"] == null)

            ViewState["sortDirection"] = SortDirection.Ascending;

              // ViewState["sortDirection"]可以获取到页面GridViewsortDirection属性的值

         return (SortDirection)ViewState["sortDirection"];

    }

    set { ViewState["sortDirection"] = value; }

 }

 

 

protected void SortGridView(string sortExpression, string direction)

{    

     String sql = select id,name,score1,score2,total from dual;

     DataTable dat1 = new Dbind().SelectFormForum(sql); 

//查找数据源,因为我们是要对已经呈现在页面上的报表信息按字段进行排序,所以我们在这里获取的

//数据集应该和页面呈现时调用的是一样的,也就是将一开始的查询从新走了一遍,同时在sql语句

//加入了相对应字段的排序代码,然后再次绑定到GridView控件中呈现出来.

// new Dbind().SelectFormForum(sql)只是用户自定义的执行查询的功能函数

 

    DataView dv = new DataView(dat1);

    dv.Sort = sortExpression + direction;   //设置排序的字段和排序方式

    GView1.DataSource = dv;

    GView1.DataBind();

}

 

执行操作流程:

1.    点击某个字段的标题时,触发了函数GridView1_Sorting

2.    在函数GridView1_Sorting中调用GridViewSortDirection函数去判断排序方式,进而去执行对应的排序方式.

3.    GridViewSortDirection函数可以获取页面设置控件的排序方式

4.    调用SortGridView函数,查询出数据集,拼接字段及其排序方式,加入到控件属性中,绑定数据源

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值