zoukankan
html css js c++ java
在asp.net2.0中使用GridView的RenderContro将GridView中数据l转换成EXCEL文件
在asp.net2.0中,控件的校验严格了,RenderControl代码只有走正常流程在render方法中它自己调用才能成功,在你自己写的事件方法中调用就会出现这个错误。这个错误信息有点误导,你明明写在服务器控件Form内,它照样会这样提醒你,实际上是asp.net2.0设置了内部变量控制RenderControl不允许在Render方法之外被轻易调用。
但只要稍做修改就可以实现在asp.net2.0中使用GridView的RenderContro将GridView中数据l转换成EXCEL文件的功能了。
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
Default.aspx.cs
"
Inherits
=
"
_Default
"
%>
<!
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
="GridView1"
runat
="server"
>
</
asp:GridView
>
<
asp:Button
ID
="Button1"
runat
="server"
OnClick
="Button1_Click"
Text
="输出"
Width
="71px"
/>
</
div
>
</
form
>
</
body
>
</
html
>
注意最后两个函数
protected
void
Page_Load(
object
sender, EventArgs e)
{
//
在此处放置用户代码以初始化页面
if
(
!
Page.IsPostBack)
BindData();
}
/**/
///
<summary>
///
创建数据源
///
</summary>
///
<returns>
DataView
</returns>
ICollection CreateDataSource()
{
DataTable dt
=
new
DataTable();
DataRow dr;
dt.Columns.Add(
new
DataColumn(
"
身份证号码
"
,
typeof
(
string
)));
dt.Columns.Add(
new
DataColumn(
"
图书单价
"
,
typeof
(
decimal
)));
dt.Columns.Add(
new
DataColumn(
"
购买数量
"
,
typeof
(Int32)));
dt.Columns.Add(
new
DataColumn(
"
总价格
"
,
typeof
(
decimal
)));
for
(
int
i
=
0
; i
<
30
; i
++
)
{
dr
=
dt.NewRow();
dr[
0
]
=
"
123456789123456789
"
;
dr[
1
]
=
100
*
i
/
3.0
;
dr[
2
]
=
i
+
5
;
dr[
3
]
=
(
decimal
)dr[
1
]
*
(Int32)dr[
2
];
dt.Rows.Add(dr);
}
DataView dv
=
new
DataView(dt);
return
dv;
}
private
void
BindData()
{
GridView1.DataSource
=
CreateDataSource();
GridView1.DataBind();
}
protected
void
Button1_Click(
object
sender, EventArgs e)
{
Response.Clear();
Response.AddHeader(
"
content-disposition
"
,
"
attachment;filename=FileName.xls
"
);
Response.Charset
=
"
gb2312
"
;
Response.ContentType
=
"
application/vnd.xls
"
;
System.IO.StringWriter stringWrite
=
new
System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite
=
new
HtmlTextWriter(stringWrite);
GridView1.AllowPaging
=
false
;
BindData();
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
GridView1.AllowPaging
=
true
;
BindData();
}
public
override
void
VerifyRenderingInServerForm(Control control)
{
//
Confirms that an HtmlForm control is rendered for
}
protected
void
paging(
object
sender, GridViewPageEventArgs e)
{
GridView1.PageIndex
=
e.NewPageIndex;
BindData();
}
查看全文
相关阅读:
python网页内容提取神器lxml
tf–idf算法解释及其python代码
刷搜索刷下拉框原理
python爬取全站壁纸代码
刷百度相关搜索发包参数详解
Python3 if 变量variable SQL where 语句拼接
python抓取网站提示错误ssl.SSLCertVerificationError处理
Windows中的txt文件到Mac打开是乱码 解决办法
python移动目录下所有子目录文件到新的总目录
Spring Boot
原文地址:https://www.cnblogs.com/always/p/555690.html
最新文章
指针与地址
指针
循环单链表
单链表
函数的声明与定义
传值和传地址调用
希尔排序
快速排序
简单选择排序
MySQL InnoDB存储引擎中的锁机制
热门文章
Cgroups概述
show slave status中的log_file / log_pos
Innodb buffer pool/redo log_buffer 相关
pt-table-checksum 主从复制一致性检查
MySQL table_id原理及风险分析
Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
MySQL查询大小写是否敏感问题分析
负载均衡、LVS概述
MySQL性能指标及计算方法
python结巴分词余弦相似度算法实现
Copyright © 2011-2022 走看看