- 浏览: 614033 次
- 性别:
- 来自: 卡哇伊
文章分类
- 全部博客 (299)
- C# (25)
- Java (1)
- WinForm (0)
- Asp.Net (86)
- Jsp (2)
- Php (1)
- Web Service (0)
- Desgin Patterns (19)
- Data Structure & Algorithms (1)
- SQLserver (41)
- Mysql (0)
- Oracle (2)
- Javascript (50)
- Ajax (10)
- Jquery (1)
- Flex (0)
- Regular Expression (5)
- DIV+CSS+XHTML+XML (18)
- Software Test (0)
- Linux (0)
- Utility (17)
- Net Digest (4)
- windows 2003 (10)
- Other (4)
- English (1)
- IT Term (1)
最新评论
-
w497480098h:
学习了 很好谢谢
SQL Server下无限多级别分类查询解决办法(简单查询树形结构数据库表) -
main_fun:
确实不错
iframe自适应高度 -
jveqi:
...
DBA -
mxcie:
其它版本没有确认,今天使用vs2003时,其.sln文件也需要 ...
彻底删除项目的VSS源代码管理信息 -
moneyprosper:
就只有IE支持,火狐和谷歌都不支持此种方法。正在寻找中。。。
从父页面读取和操作iframe中内容方法
前台页面:
<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="false" CodeFile="Default4.aspx.cs" Inherits="Default4" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="gvPersonList" runat="server" AutoGenerateColumns="False" AllowPaging="True" onpageindexchanging="gvPersonList_PageIndexChanging"> <Columns> <asp:TemplateField HeaderText="编号"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("Id") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="Name" HeaderText="姓名" /> <asp:TemplateField HeaderText="性别"> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Eval("Sex").ToString().ToLower()=="true"?"男":"女" %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="婚否"> <ItemTemplate> <asp:Label ID="Label3" runat="server" Text='<%#Boolean.Parse(Eval("Married").ToString())==true?"是":"否" %>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:Button ID="btnToExcel" runat="server" Text="导出Excel" onclick="btnToExcel_Click" /> <asp:Button ID="btnToWord" runat="server" Text="导出Word" onclick="btnToWord_Click" /> </div> </form> </body> </html>
using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; public partial class Default4 : System.Web.UI.Page { private string firstName = "赵钱孙李周吴郑王冯陈诸卫蒋沈韩杨朱秦尤许何吕施张孔曹严华"; private String lastName = "猛勇刚强豹彪雁燕蓉菲"; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindGridView(); } } //绑定表格GridView数据 private void BindGridView() { gvPersonList.DataSource = CreateDataTable(); gvPersonList.DataBind(); } //手动生成DataTable private DataTable CreateDataTable() { DataTable data = new DataTable(); //ID列 DataColumn dcid = new DataColumn("id", typeof(Int32)); //设置ID列自动递增 dcid.AutoIncrement = true; //设置ID列初始值为1 dcid.AutoIncrementSeed = 1; //设置ID列递增步长为1 dcid.AutoIncrementStep = 1; //将ID列添加到DataTable中 data.Columns.Add(dcid); data.Columns.Add(new DataColumn("Name", typeof(String))); data.Columns.Add(new DataColumn("Age", typeof(int))); data.Columns.Add(new DataColumn("Sex", typeof(bool))); data.Columns.Add(new DataColumn("Married", typeof(bool))); DataRow dataRow = null; Random random = new Random(); for (int i = 0; i < 20; i++) { dataRow = data.NewRow(); //随机生成姓名 dataRow["Name"] = firstName.Substring(random.Next(firstName.Length), 1) + lastName.Substring(random.Next(lastName.Length), 1); //随机生成年龄 int age = random.Next(20, 100); dataRow["Age"] = age; //随机生成性别 bool sex = (random.Next(100) % 2 == 0) ? true : false; dataRow["Sex"] = sex; if (sex == true && age >= 22 || sex == false && age >= 20) { dataRow["Married"] = (random.Next(500) % 2 == 0) ? true : false; } else { dataRow["Married"] = false; } data.Rows.Add(dataRow); } return data; } /// <summary> /// 导出数据函数 /// </summary> /// <param name="FileType">导出文件MIME类型</param> /// <param name="FileName">导出文件的名称</param> private void Exprot(String FileType, String FileName) { Response.Clear(); Response.BufferOutput = true; //设定输出字符集 Response.Charset = "GB2312"; Response.ContentEncoding = System.Text.Encoding.UTF8; Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8)); //设置输出流HttpMiME类型(导出文件格式) Response.ContentType = FileType; //关闭ViewState Page.EnableViewState = false; System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("ZH-CN", true); System.IO.StringWriter stringWriter = new System.IO.StringWriter(cultureInfo); HtmlTextWriter textWriter = new HtmlTextWriter(stringWriter); gvPersonList.RenderControl(textWriter); //把HTML写回游览器 Response.Write(stringWriter.ToString()); Response.End(); Response.Flush(); } //导出Excel protected void btnToExcel_Click(object sender, EventArgs e) { //Response.Clear(); //Response.BufferOutput = true; ////设定输出的字符集 //Response.Charset = "utf-8"; ////假定导出的文件名为FileName.xls //Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls"); //Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8"); ////设置导出文件的格式 //Response.ContentType = "application/ms-excel"; ////关闭ViewState //EnableViewState = false; //System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("ZH-CN", true); //System.IO.StringWriter stringWriter = new System.IO.StringWriter(cultureInfo); //System.Web.UI.HtmlTextWriter textWriter = new System.Web.UI.HtmlTextWriter(stringWriter); //gvPersonList.RenderControl(textWriter); ////把HTML写回浏览器 //Response.Write(stringWriter.ToString()); //Response.End(); Exprot("application/ms-excel","Employee.xls"); } //导出Word protected void btnToWord_Click(object sender, EventArgs e) { //这里将导出的方法抽取了出来使用 Exprot("application/ms-word", "Employee.doc"); } //确认在运行时为指定的 ASP.NET 服务器控件呈现在 HtmlForm 控件中。 //(检验Asp.Net服务器空间是否呈现在HTMLForm控件中) public override void VerifyRenderingInServerForm(Control control) { /* 对程序说明,在asp.net 1.1中由于对控件呈现不是很严格, * 所以无需override void VerifyRenderingInServerForm(Control control)这个方法 * 但在asp.net2.0中,控件的校验严格了,RenderControl代码只有走正常流程在render方法 * 中它自己调用才能成功,在你自己写的事件方法中调用就会出现这个错误。这个错误信息有点误导, * 你明明写在服务器控件Form内,它照样会这样提醒你, * 实际上是asp.net2.0设置了内部变量控制RenderControl不允许在Render方法之外被轻易调用。 * 如果不override VerifyRenderingInServerForm就会报错。 * 我们override void VerifyRenderingInServerForm(Control control)这个方法, * 里面不写任何代码即可*/ //base.VerifyRenderingInServerForm(control); } /// <summary> /// 分页 /// </summary> protected void gvPersonList_PageIndexChanging(object sender, GridViewPageEventArgs e) { gvPersonList.PageIndex = e.NewPageIndex; BindGridView(); } }
需要注意的是:在asp.net2.0环境下,VerifyRenderingInServerForm(Control control)这个方法不override的话,则会出现“错误提示:类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内”这个错误。
分页的情况下如果不想就得到一页的数据需要导出所有的数据:
1.由于gridview的内容可能是分页显示的,因此,这里在每次导出excel时,先将gridview的allowpaging属性设置为false,然后databind()一下,确保得到所有数据;
2.不用单独设置导出的路径,导出时会弹出对话框让你确认保存位置;
3.要写一个空的VerifyRenderingInServerForm方法(必须写),以确认在运行时为指定的ASP.NET 服务器控件呈现HtmlForm 控件;
4.导出后别忘记再重新设置其allowpaging属性;
当我把这些都设置好以后,点击[导出],出现了只能在执行 Render() 的过程中调用 RegisterForEventValidation(RegisterForEventValidation can only be called during Render(); ) 的错误,又检查代码,没发现问题啊,搞了一会弄不出来,然后搜索了一下,发现了解决办法:
修改你的aspx文件中的:
<%@ Page Language="C#" EnableEventValidation = "false" AutoEventWireup="true" CodeFile="SysUser.aspx.cs" Inherits="Autho_SysUser2" %>
增加红色的部分就ok了。
protected void btnToWord_Click(object sender, EventArgs e) { gvPersonList.AllowPaging = false; gvPersonList.AllowSorting = false; BindGridView(); Exprot("application/ms-word", "Employee.doc"); gvPersonList.AllowPaging = true; gvPersonList.AllowSorting = true; BindGridView(); }
发表评论
-
JS操作RadioButtonList
2009-12-16 23:25 3898function IsUpPic() { ... -
asp.net跳转页面的三种方法比较
2009-10-22 14:16 25421.Response.redir ... -
ASP.NET网站中的安全问题
2009-10-20 16:57 1194在网络经常看到网站被 ... -
新闻内容页分页的简单做法
2009-10-10 10:08 1225该例子只是提供了基本思路 很简单的做法,这个是假设数 ... -
Asp.net控件开发学习笔记(二)-控件开发基础
2009-10-03 16:49 1345接上篇…….. 看System.Web.UI.Ht ... -
Asp.net控件开发学习笔记-控件开发基础(一)
2009-10-03 16:33 1250服务器控件开发基础 当开发一个服务器控件时,首 ... -
Asp.net用户退出,清空Session,重定向登陆页面
2009-09-28 16:22 4178protected void Page_Load(object ... -
frameset中的aspx无法Postback
2009-09-28 16:07 1505<frameset cols="150,*&q ... -
.net页面定时刷新的几种简单方式
2009-09-28 11:20 59261: window.setTimeout("win ... -
动态添加TextBox
2009-09-21 16:30 1686方法1: 前台代码: <f ... -
浅谈ASP.NET管道优化
2009-09-20 21:43 1015ASP.NET管道优化 位于请求管道中的很多ASP.NET默 ... -
Asp.net 页面返回到上一页面
2009-09-20 21:20 915/// <summary> / ... -
PrecompiledApp.config文件和Global.asax 文件中的事件的关联
2009-09-19 10:24 2791在用Microsoft Visual Studio 2005开 ... -
gridview列 数字、货币和日期 显示格式
2009-09-11 17:05 1536在设置gridview等数据绑定控件的模版列时,总要 ... -
ASP.NET 打开新窗口几种方法
2009-09-09 21:44 3344ASP.NET打开新窗口方法一: Response ... -
response.addHeader("Content-Disposition","attachment; filename="+filename)中的中文乱码
2009-08-31 15:10 3250两种解决方法 1.如果web.config里utf-8 直接S ... -
技巧和诀窍:如何在VS 2005 SP1中使用VS的web服务器运行一个相对于根目录“/”的网站
2009-08-31 08:29 869大家常有一个疑问,是 ... -
Request.ServerVariables详细说明及代理
2009-08-14 10:46 2147ServerVariables是环境变量的集合。允许读取HTT ... -
DataList和Repeat无数据时提示暂无数据几种方法
2009-08-11 18:45 25751.放一个label DataTable table ... -
Asp.Net中清空所有textbox的几种方法
2009-08-08 08:53 5191用反射: FieldInfo[] info ...
相关推荐
然而,仅限于网页显示有时并不足够,我们常常需要将GridView中的数据导出到其他格式,如PDF、Word、Excel或CSV,以便用户可以离线查看或进一步处理。本主题主要围绕如何实现ASP.NET GridView控件的数据导出功能进行...
总的来说,将GridView导出到Excel和Word是.NET Web应用程序中常见的需求,涉及到了文件操作、数据转换、样式复制等多个技术点。通过选择合适的库和正确的方法,我们可以提供用户友好的数据导出功能,增强应用程序的...
对于导出到Excel,这个过程与Word类似,但需要使用OpenXML库处理Excel工作表。步骤如下: 1. 创建一个StringBuilder,将GridView转换为CSV(逗号分隔值)格式,因为Excel可以轻松地识别和导入CSV。 2. 使用...
而“gridview数据导出到word或Excel完整案例”是一个实用的功能,它允许用户将GridView中的数据保存为Word文档或Excel表格,便于进一步的编辑、打印或分享。这个完整的demo包含了实现这一功能所需的所有步骤和技术,...
接下来,我们讨论如何将GridView数据导出到Excel。Excel操作同样可以通过`Microsoft.Office.Interop.Excel`库实现: 1. 引用Excel库:在项目中添加对`Microsoft.Office.Interop.Excel`的引用。 2. 创建Excel应用...
// 导出到 Excel // this.ASPxGridViewExporter1.WriteRtfToResponse(); // 导出到 Word } ``` - **WriteXlsToResponse()**:将 GridView 的数据导出为 Excel 文件。 - **WriteRtfToResponse()**:将 GridView 的...
YYControls应用之TreeView实现复选联动及GridView导出Excel、Word、Text 联动复选框(复选框的全选和取消全选)。选中指定的父复选框,则设置其所有子复选框为选中状态;取消选中指定的父复选框,则设置其所有子复...
总结来说,从C# GridView导出到Excel和Word主要涉及将GridView数据转换为HTML,然后利用HTTP响应将HTML发送到客户端,由浏览器以相应格式打开。这个过程可以通过调整Response的属性和使用适当的文本写入工具来实现。...
然而,原生的GridView并不支持直接将数据导出到Excel或Word文档,这对于需要生成报表或者进行数据交换的场景来说是一个限制。本教程将详细介绍如何扩展GridView,使其具备自定义的Excel和Word导出功能。 首先,我们...
在 Web 开发中,将数据从 GridView 控件导出到 Excel 或 Word 文件是常见的需求之一。本文将详细介绍如何使用 C# 实现这一功能。 #### GridView 控件简介 GridView 是 ASP.NET 提供的一种用于展示数据的控件,它能...
C#,asp.net, 很好很全
项目中会用到将网页查询到的数据,导出到Excel中。我将文档整理了
"扩展GridView控件-导出数据源的数据为Excel、Word或Text"可能是项目的一个主文件或者示例代码,而"YYControls"和"Web"可能分别代表自定义控件和Web应用程序的代码目录。 在实际开发中,为了提高性能和用户体验,...
综上所述,"gridview导出PDF-WORLD-EXCEL"涉及到的关键技术主要是GridView的数据处理,以及利用第三方库将数据转换为PDF、Word(可能为Excel的误写)和Excel格式。理解并掌握这些技能,将有助于开发出功能强大的数据...
gridview导出为word、excel、pdf格式源代码,三个按钮分别实现三个功能,通过实例实现,下载完直接运行即可,其中pdf的实现通过itextsharp.dll,非常好的源代码,希望给你带来学习上的帮助
本文将详细讲解如何实现GridView导出到Word或Excel,这对于需要进行数据报表导出的项目非常实用。我们将使用C#语言来完成这个功能。 首先,我们需要了解GridView的基本操作。GridView可以通过DataBind方法绑定数据...
**三、GridView导出到Excel** 1. **创建Excel工作簿**:使用`Microsoft.Office.Interop.Excel`或EPPlus库创建新的Excel工作簿。 2. **复制GridView数据**:可以通过遍历GridView的行和列,将数据显示到Excel工作表...
在某些场景下,我们可能需要将GridView中的数据导出到Word或Excel文档,以便进行进一步处理或分享。"GridView Export To Word or Excel"就是这样一个功能,它允许用户将网页上的GridView数据导出为Microsoft Word或...