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

关于数据导出的问题

目前整个数据是在gridview中通过分页显示的,有导出数据的功能。但是只能导出当前页的数据。我想把所有数据都导出来,有没有什么好的方法? --------------------编程问答-------------------- 使用隐藏的gridview绑定所有数据导出
或通过数据集,打开EXCEL模板导出

Response.ClearContent();
    Response.BufferOutput = true;
    Response.Charset = "utf-8";
    Response.ContentType = "text/xml";
    Response.ContentEncoding = System.Text.Encoding.UTF8;
    Response.AppendHeader("Content- Disposition", "attachment;filename="+Server.UrlEncode("filename")+".xls");
    Response.Write("<?xml version='1.0'?><?mso-application progid='Excel.Sheet'?>");
--------------------编程问答-------------------- 导出 为excel文件 --------------------编程问答-------------------- 由于gridview的内容可能是分页显示的,因此,这里在每次导出excel时,先将gridview的allowpaging属性设置为false,然后databind()一下,确保搂到所有数据;

修改你的aspx文件中的:
<%@ Page Language="C#" EnableEventValidation = "false" AutoEventWireup="true" CodeFile="SysUser.aspx.cs" Inherits="Autho_SysUser2" %>
增加红色的部分就ok了。
下面是代码和截图:
    #region 导出为Excel
    public override void VerifyRenderingInServerForm(Control control)
    {
        // Confirms that an HtmlForm control is rendered for
    }
    private void ToExcel(Control ctl, string FileName)
    {
        HttpContext.Current.Response.Charset = "UTF-8";
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
        HttpContext.Current.Response.ContentType = "application/ms-excel";
        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + FileName);
        ctl.Page.EnableViewState = false;
        System.IO.StringWriter tw = new System.IO.StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(tw);
        ctl.RenderControl(hw);
        HttpContext.Current.Response.Write(tw.ToString());
        HttpContext.Current.Response.End();
    }
    private void toExcelClk()
    {
        gvSysUser.AllowPaging = false;
        gvSysUser.AllowSorting = false;
        gvSysUser.DataBind();
        ToExcel(gvSysUser, "OFS_Data.xls");
        gvSysUser.AllowPaging = true;
        gvSysUser.AllowSorting = true;
        gvSysUser.DataBind();
    }
    #endregion




参考:http://www.cnblogs.com/vagerent/archive/2007/03/12/672171.html
--------------------编程问答-------------------- 可以先获取GridView的数据源,再根据DataView做导出,就可以导出全部,还不影响原来的分页功能
补充:.NET技术 ,  .NET Framework
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,