当前位置:编程学习 > C#/ASP.NET >>

获得GridView的数据源

连接数据库后我将数据读入DataSet ds中,将ds绑定到GridView1,
GridView1.DataSource = ds;
GridView1.DataBind();
现在我想把GridView1中的全部信息保存为excel,但试了几种方法都只是保存的当前页的信息,所以想获得GrideView1的数据源信息ds,然后保存ds就可以了,不知道是不是可行,请高手指教。谢谢啦! --------------------编程问答-------------------- 没弄过excel,理论上来说这样好像可以&&自己试试不就知道行不行了吗? --------------------编程问答-------------------- 建议一对一绑定  
dataset[表名] workbook[工作薄名] --------------------编程问答-------------------- 如果你是在后台将GridView作Render取html的方式导出excel的话,只需在导出时取消分页,将所有数据都绑定出来再导出即可;如果是以excel.application的方式导出,则获取ds直接自定义绘制即可 --------------------编程问答-------------------- 将GridView1的分页取消就可以了 --------------------编程问答--------------------
public void CreatExcel(System.Data.DataTable dt,System.Web.UI.Page thisPage)
        {
            StringWriter sw = new StringWriter();
            string rowStr = "";
            //取所有列名
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                rowStr = rowStr + dt.Columns[i] + "\t";
            }

            sw.WriteLine(rowStr);
            //取每行数据
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                rowStr = "";
                for (int i = 0; i < dt.Columns.Count; i++)
                {

                    rowStr = rowStr + dt.Rows[j][i].ToString() + "\t";

                }
                sw.WriteLine(rowStr);
            }
            sw.Close();
            string filename = DateTime.Now.ToString("yyyyMMddhhmmss");
            //System.Web.UI.Page pp= new Page();
            
            thisPage.Response.AddHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");
            thisPage.Response.ContentType = "application/ms-excel";
            thisPage.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            thisPage.Response.Write(sw);
            thisPage.Response.End();
        }



或者你用下边的..导的时候把分页啥的全取消.然后再绑一次.导出就是全部的了

 
public void ExportToExcel(string Filename, DataGrid gridview, Page page)
    {
        
        gridview.AllowSorting = false;
        gridview.AllowPaging = false;
        gridview.HeaderStyle.ForeColor = System.Drawing.Color.Black;
        DataTable temp = (DataTable)ViewState["view"];
        gridview.DataSource = temp;
        gridview.DataBind();

        page.Response.Clear();
        // 防止中文内容为乱码 
        page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
        //可令中文文件名不为乱码 
        page.Response.AppendHeader("content-disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(Filename + DateTime.Now.ToShortDateString(), System.Text.Encoding.UTF8) + ".xls\"");
        System.IO.StringWriter sw = new System.IO.StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);

        gridview.RenderControl(htw);
        page.Response.Write(sw.ToString());
        page.Response.End();
    }
--------------------编程问答-------------------- mark. --------------------编程问答-------------------- 有一比较笨的方法,就是页面放两个GRIDVIEW一个分页一个不分页,
分页显示,不分页的隐藏
导出的时候导出的不分页的GRIDVIEW --------------------编程问答-------------------- UP 多谢lovehongyun !
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,