GridView排序功能的实现

来源:互联网 发布:网络暴利项目 编辑:程序博客网 时间:2024/04/29 15:39
因为dataset不支持排序,所以将dataset绑定到GridView上以后不能使用GridView的 排序功能,要排序需要手动实现GridView的Sorting事件,通过DataView的排序功能来对GridView进行排序,下面是一个例子
   //********************************************************************************
    
//处理GridView的排序事件
    protected void grv_Messenge_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");
        }

    }


    
//*******************************************************************************
    /*
     * 函数名:SortGridView,即对GridView进行排序
     * 创建时间:2007年11月7日
     * 功能描述:自定义GridView的排序方法,通过DataView中的排序方法对GridView的数据进行排序
     * 输入参数:用于排序的关联表达式,排序的方向(升序或降序)
     * 使用示例:SortGridView( sortExpression, "DESC")
     * 返回值说明:无返回值
     
*/

    
private void SortGridView(string sortExpression, string direction)
    
{
        DataSet ds 
= GetData();                                     //查找数据源
        DataTable dt = ds.Tables[0];

        DataView dv 
= new DataView(dt);
        dv.Sort 
= sortExpression + direction;
        grv_Messenge.DataSource 
= dv;                       //将DataView绑定到GridView上
        grv_Messenge.DataBind();

    }
 在GridView里面将要排序的列设置好SortExpression,并启用排序就可以了