我是菜鸟,我是新手。前几天写程序时,应客户要求加上打印和数据导出功能,在过去从未做过类似的,就在网上搜了一搜,结果云云,方法云云。试过好多都要出错。于是乎,拿过来好几个,相比对照之下,终于弄出来了,记录下来,以后会用得着,也给予同我一样的新手借鉴。
导出功能,还是并非我最想要的(怎么能把浏览器下载那个提示框取消了,就如同保存图片一样),有高手路过,请指点一二......
************导出GridView数据************
1、页面中添加:
<asp:LinkButton ID="lbtn_Excel" runat="server" OnClick="lbtn_Excel_Click"><img src="../icon/excel.jpg" height="20" align="absmiddle" border="0" />导出</asp:LinkButton>
2、后置代码,lbtn_Excel_Click方法:
protected void lbtn_Excel_Click(object sender, EventArgs e)
{
string FileName = "MateOutList(" + DateTime.Now.ToShortDateString()+"_" +DateTime.Now.ToShortTimeString() + ").xls";
//导出Excel
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=" + FileName);
Response.Charset="GB2312";
Response.ContentType="application/vnd.xls";
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
System.IO.StringWriter strW=new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlTW=new HtmlTextWriter(strW);
//GridView去样式
System.Drawing.Color oldbackcolor = gv_Excel.HeaderStyle.BackColor;
System.Drawing.Color oldforecolor = gv_Excel.HeaderStyle.ForeColor;
GridView1.RenderControl(htmlTW);
Response.Write(strW.ToString());
Response.End();
}
3、切记重写 VerifyRenderingInServerForm方法
public override void VerifyRenderingInServerForm(Control control)
{
// Confirms that an HtmlForm control is rendered for
}
4、如果LinkButton是在UpdatePanel<ContentTemplate>