热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> .Net编程>>正文内容

在不使用数据源控件时,GridView控件的排序和分页

发布时间:2010年02月28日点击数: 佚名

有时你想在不使用数据源控件如SqlDataSourc

  1. protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
  2.     GridView1.DataSource = SortDataTable(GetYourDataSource(), true); 
  3.     GridView1.PageIndex = e.NewPageIndex; 
  4.     GridView1.DataBind(); 
  5.   
  6. private string GridViewSortDirection 
  7.     get { return ViewState["SortDirection"as string ?? "ASC"; } 
  8.     set { ViewState["SortDirection"] = value; } 
  9.   
  10. private string GridViewSortExpression 
  11.     get { return ViewState["SortExpression"as string ?? string.Empty; } 
  12.     set { ViewState["SortExpression"] = value; } 
  13.   
  14. private string ToggleSortDirection() 
  15.     switch (GridViewSortDirection) 
  16.    { 
  17.       case "ASC"
  18.             GridViewSortDirection = "DESC"
  19.           break
  20.       case "DESC"
  21.             GridViewSortDirection = "ASC"
  22.           break
  23.    } 
  24.     return GridViewSortDirection; 
  25.   
  26. protected DataView SortDataTable(DataTable dataTable, bool isPageIndexChanging) 
  27.     if (dataTable != null
  28.    { 
  29.         DataView dataView = new DataView(dataTable); 
  30.         if (GridViewSortExpression != string.Empty) 
  31.        { 
  32.             if (isPageIndexChanging) 
  33.            { 
  34.                 dataView.Sort = string.Format("{0} {1}",  
  35.                               GridViewSortExpression,GridViewSortDirection); 
  36.            } 
  37.            else 
  38.            { 
  39.                 dataView.Sort = string.Format("{0} {1}"
  40.                               GridViewSortExpression,ToggleSortDirection()); 
  41.            } 
  42.        } 
  43.     return dataView; 
  44.    } 
  45.    else 
  46.    { 
  47.         return new DataView(); 
  48.    } 
  49.   
  50. protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) 
  51.     GridViewSortExpression = e.SortExpression; 
  52.     int pageIndex = GridView1.PageIndex; 
  53.     GridView1.DataSource = SortDataTable(GetYourDataSource(), false); 
  54.     GridView1.PageIndex = pageIndex; 
  55.     GridView1.DataBind(); 

e或ObjectDataSource 控件的情况下绑定GridView控件到数据,这意味着排序和分页将不会借助数据源控件被自动处理,为了实现排序和分页,你必须要处理GridView 控件的PageIndexChanging 和 Sorting事件,如下例所示:

本站热点业务

更多模板/案例展示

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作