GridView 数据导出方法一

前台代码:

<asp:GridView ID="GView1" runat="server" Height="10px" Width="749px"></asp:GridView>    

在这里我们使用的是GridView数据控件

 

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"> 数据导出</asp:LinkButton><br />

通过一个链接按钮触发事件执行

 

后台代码:

protected void LinkButton1_Click(object sender, EventArgs e)

{

     Export_To_Excel(GView1);   //自定义函数,如下,函数参数是对应控件的IDGView1

}

//该方法就是上面触发的事件

 

public void Export_To_Excel(Control control)

    {

        GridView gview = (GridView) control;

        gview.AllowPaging = false;//禁用Gridview的分页

        gview.AllowSorting = false;//禁用Gridview排序

        gview.DataBind();

String FileName = DateTime.Now.ToString("yyyy-MM-dd") + "-" + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();

        HttpContext.Current.Response.Charset = "GB2312";

HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName + ".xls");

        HttpContext.Current.Response.ContentType = "application/ms-excel"; //设置导出文件格式

        HttpContext.Current.Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=GB2312\">");

        gview.Page.EnableViewState = false;

        StringWriter tw = new StringWriter();

        HtmlTextWriter hw = new HtmlTextWriter(tw);

        gview.RenderControl(hw);

        HttpContext.Current.Response.Write(tw.ToString());

        HttpContext.Current.Response.End();

        //HttpContext.Current.Cache.Remove(gv.ToString());

    }

//这个函数是实现数据导出的主体函数

 

 

 

public override void VerifyRenderingInServerForm(Control control)

{

    //base.VerifyRenderingInServerForm(control);

}

//这个函数必须有,并且是空实现,不然会出现如下的错误

类型“GridView”的控件“GView1”必须放在具有 runat=server 的窗体标记内

 

//有时也会出现如下错误

回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。

 

改正的办法就是将

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="t_test.aspx.cs" Inherits="report_Default" %>

加上 EnableEventValidation="false"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值