GridView导出到Excel(可选择记录条数)
最近有点空就喜欢去研究研究GridView的使用,所以你如果是想要学习这方面的东西可以来参观参观。^_^
这里说明一下GridView到Excel的导出实现。平时你看到的GridView导出Excel代码可能很多了,但是我这里的肯定和你平时看到的不同,先看一下我的截图吧:
看出来了吧,我的导出是有条件可以选择的。你是想到处当前页面的数据呢还是想到处全部数据,或者是前30条数据。。。。
先说明一下我的实现原理吧。
当点击导出按钮时会去判断RadioButtonlist当前值然后去选择应该导出哪些数据到Excel。代码如下:
导出GrivView到Excel的方法:
- {
- HttpContext.Current.Response.Clear();
- HttpContext.Current.Response.AddHeader(
- "content-disposition", string.Format("attachment; filename={0}", fileName));
- HttpContext.Current.Response.ContentType = "application/ms-excel";
- using (StringWriter sw = new StringWriter())
- {
- using (HtmlTextWriter htw = new HtmlTextWriter(sw))
- {
- // Create a form to contain the grid
- Table table = new Table();
- // add the header row to the table
- if (gv.HeaderRow != null)
- {
- GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);
- table.Rows.Add(gv.HeaderRow);
- }
- // add each of the data rows to the table
- if (top == 30)
- {
- for (int i = 0; i <= 29; i++)
- {
- GridViewRow row = gv.Rows[i];
- GridViewExportUtil.PrepareControlForExport(row);
- table.Rows.Add(row);
- }
- }
- else
- {
- foreach (GridViewRow row in gv.Rows)
- {
- GridViewExportUtil.PrepareControlForExport(row);
- table.Rows.Add(row);
- }
- }
- // add the footer row to the table
- if (gv.FooterRow != null)
- {
- GridViewExportUtil.PrepareControlForExport(gv.FooterRow);
- table.Rows.Add(gv.FooterRow);
- }
- // render the table into the htmlwriter
- table.RenderControl(htw);
- // render the htmlwriter into the response
- HttpContext.Current.Response.Write(sw.ToString());
- HttpContext.Current.Response.End();
- }
- }
- }
- /// <summary>
- /// Replace any of the contained controls with literals
- /// </summary>
- /// <param name="control"></param>
- private static void PrepareControlForExport(Control control)
- {
- for (int i = 0; i < control.Controls.Count; i++)
- {
- Control current = control.Controls[i];
- if (current is LinkButton)
- {
- control.Controls.Remove(current);
- control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
- }
- else if (current is ImageButton)
- {
- control.Controls.Remove(current);
- control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
- }
- else if (current is HyperLink)
- {
- control.Controls.Remove(current);
- control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
- }
- else if (current is DropDownList)
- {
- control.Controls.Remove(current);
- control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
- }
- else if (current is CheckBox)
- {
- control.Controls.Remove(current);
- control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False"));
- }
- if (current.HasControls())
- {
- GridViewExportUtil.PrepareControlForExport(current);
- }
- }
本文转载处:http://blog.csdn.net/dujingjing1230/archive/2009/10/29/4744428.aspx
GridView导出到Excel(可选择记录条数)相关推荐
- Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理
Asp.net 2.0中新增的gridview控件,是十分强大的数据展示控件,在前面的系列文章里,分别展示了其中很多的基本用法和技巧(详见< ASP.NET 2.0中Gridview控件高级技巧 ...
- GridView导出到Excel或Word文件
在项目中我们经常会遇到要求将一些数据导出成Excel或者Word表格的情况,比如中国移动(我是中国移动用户)网上查话费的页面中就有一个导出到Excel的功能,光大网上银行查看历史明细也有这些功能... ...
- GridView导出到Excel和开源图表工具
导出GridView到Excel 把GridView导出到Excel是一个很常用的功能,在网上搜索的解决方案都是一些零碎的代码,并且有很多问题,不是在所有环境下可以通用的,你甚至还有去处理一些这些代码 ...
- ASP.NET 2.0中将 GridView 导出到 Excel 文件中
下面代码实现将 GridView 导出到 Excel文件中. 值得注意的是VerifyRenderingInServerForm重载方法: MSDN上的 VerifyRenderingInServer ...
- Gridview导出到EXCEL
为避免出错的准备 出错1:类型"GridView"的控件"GridView1"必须放在具有 runat=server 的窗体标记内 解决方案:在后台文件中重载V ...
- ASP.NET 2.0中将 GridView 导出到 Excel 文件中 (转)
下面代码实现将 GridView 导出到 Excel文件中. 值得注意的是VerifyRenderingInServerForm重载方法: MSDN上的 VerifyRenderingInServer ...
- 解决gridview导出到excel中汉字出现乱码的问题
我在用下面代码将gridview导出到excel中时,其中的汉字出现了乱码: protected void Button2_Click(object sender, EventArgs e) ...
- Web页面打印及GridView导出到Excel
打印Web页面 在头部<head>加入 打印事件 <script language=javascript> function doPrint() { ...
- sql 统计记录条数后 打印出所有记录_用SQL完成购买行为分析(下篇II)
(接<用SQL完成购买行为分析(下篇I)>内容) 12)查询首条记录为fav,总记录条数为14的记录.将前面getNum(3)红框处替换为12,运行getNum(14)得到第2条记录的数量 ...
最新文章
- ASP.NET画图控件 Chart Control 免费控件
- TomcatNginx源码笔记分析
- ElasticSearch第一天
- 获取2个地址之间的距离(高德API)
- 最新的.NET Framework聚焦于改进可访问性
- 谷歌开源的 GAN 库--TFGAN
- Linux 添加IPv6策略路由,26-IPv6策略路由配置
- c语言银行卡六位密码编译,用c语言生成六位的随机密码。
- Java到底能做什么事情呢?
- Linux系统中解决Device eth0 does not seem to be present,delaying initialization问题
- win10打开计算机黑屏怎么办,win10系统重启黑屏怎么办
- 单个html页面面包屑,总结11个网页面包屑设计技巧
- VC、PE和天使投资的解释与区别?
- 每日学英语之041104
- idempotent - 幂等
- 服务器30hz显示器240hz,液晶电视高达240Hz甚至480/960Hz的刷新率是怎么回事?
- 【Vue.js安装】
- ppt密码怎么设置,ppt权限密码如何破解?
- 谈谈我理解的SA——Systems Architecture
- 命令行快速清理Mac版搜狗输入法