DataRow[]、List<DataRow>无法绑定到GridView的问题解决!

 今天一个功能需在内存中实现分页,写下如下代码:

  
 this.gridView1.DataSource = DataTable1.AsEnumerable( ).Skip(( pager.CurrentPageIndex - 1 ) * pager.PageSize ).Take( pager.PageSize );//如第CurrentPageIndex 页获取的数据
 this.gridView1.DataBind( );
  
抛出异常,找不到“xxx“,xxx是DataTable1的字段,还以为是没有缺少这个字段,其实是DataRow[]、List<DataRow>无法绑定到GridView,找了下资料,有如下方法
  
IEnumerable<DataRow> rowsOfPage = DataTable1.AsEnumerable( ).Skip(( pager.CurrentPageIndex - 1 ) * pager.PageSize ).Take( pager.PageSize );
DataTable dtSource = DataTable1.Clone( );
foreach ( DataRow row in rowsOfPage )
{
//dtSource.Rows.Add( row );//throw Exception, row已?经?属?于?另?一?张?表?了?。?
dtSource.ImportRow( row );//copies row into dtSource
}
dtSource.AcceptChanges( );
this.gridView1.DataSource = dtSource;
this.gridView1.DataBind( ); 
找找居然还有更简洁的代码,如下:
 
this.gridView1.DataSource = DataTable1.AsEnumerable( ).Skip(( pager.CurrentPageIndex - 1 ) * pager.PageSize ).Take( pager.PageSize ).CopyToDataTable( );
this.gridView1.DataBind( );
 
反正就是要转换为DataTable,再绑定!

 

haha,第一次写“技术”文章,看不懂,没帮助到你,可以批评!如有更好的方法也可分享分享!

posted @ 2011-01-20 21:07  紫竹山庄  阅读(1085)  评论(2编辑  收藏  举报