我用的工具:VS2008;Sql Server2005;C#
我的问题是:DataGridView 分页后导出Excel的时候只能导出本页的数据,有什么办法能导出所有页的数据。我的数据源是List。我想在保留分页的前提下能将所有数据导出  
    急求,谢谢各位高手!!!

解决方案 »

  1.   


    /// <summary>   
            /// 仅将GridView数据导出(不导出里面的控件之类的)   
            /// </summary>   
            /// <param name="dt"></param>   
            /// <param name="page"></param>   
            /// <param name="FileName"></param>   
            public ToExcel(DataTable dt, Page page, string FileName)  
            {  
                HttpResponse resp;  
                resp = page.Response;  
                resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");  
                resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);  
                string colHeaders = "", ls_item = "";  
                int i = 0;  
      
                //定义表对象与行对像,同时用DataSet对其值进行初始化    
                DataRow[] myRow = dt.Select("");  
      
                //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符    
                for (i = 0; i < dt.Columns.Count - 1; i++)  
      
                    colHeaders += dt.Columns[i].Caption.ToString() + "\t";  
                colHeaders += dt.Columns[i].Caption.ToString() + "\n";  
      
                //向HTTP输出流中写入取得的数据信息    
                resp.Write(colHeaders);  
                //逐行处理数据      
                foreach (DataRow row in myRow)  
                {  
                    //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n    
                    for (i = 0; i < dt.Columns.Count - 1; i++)  
      
                        ls_item += row[i].ToString() + "\t";  
                    ls_item += row[i].ToString() + "\n";  
      
                    //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据        
                    resp.Write(ls_item);  
                    ls_item = "";  
                }  
      
                //写缓冲区中的数据到HTTP头文件中    
                resp.End();  
            }  
        }  
      

  2.   

    list里边的数据有很多,DataGridView 绑定的字段很少,如果用list绑定就会出现好多没有用的字段。而且列头还会显示成数据库字段的名字,非常不和谐
      

  3.   

    声明一个新的datagridview,把该和谐的都和谐掉,在绑定导出