標記中的控件可以在呈現之前調用此方法,以便在控件被置于標記外時顯示錯誤信息。發送回或依賴于注冊的腳本塊的控件應該在Control.Render方法的重寫中調用此方法。呈現服務器窗體元素的方式不同的頁可以重寫此" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

ASP.NET 2.0中將 GridView 導出到 Excel 文件中

系統 2089 0

下面代碼實現將 GridView 導出到 Excel文件中。

值得注意的是VerifyRenderingInServerForm重載方法:
  MSDN上的 VerifyRenderingInServerForm 方法的描述:
  必須位于 <form runat=server> 標記中的控件可以在呈現之前調用此方法,以便在控件被置于標記外時顯示錯誤信息。發送回或依賴于注冊的腳本塊的控件應該在 Control.Render 方法的重寫中調用此方法。呈現服務器窗體元素的方式不同的頁可以重寫此方法以在不同的條件下引發異常。
  如果回發或使用客戶端腳本的服務器控件沒有包含在 HtmlForm 服務器控件 (<form runat="server">) 標記中,它們將無法正常工作。這些控件可以在呈現時調用該方法,以在它們沒有包含在 HtmlForm 控件中時提供明確的錯誤信息。
  開發自定義服務器控件時,通常在為任何類型的輸入標記重寫 Render 方法時調用該方法。這在輸入控件調用 GetPostBackEventReference 或發出客戶端腳本時尤其重要。復合服務器控件不需要作出此調用。

沒有這個方法,程序將報錯。

C# 代碼

<% @ Page Language = " C# " EnableEventValidation = " false " %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>

< script runat ="server" >
?? ICollection CreateDataSource( )
{

???? System.Data.DataTable dt
= new System.Data.DataTable();
???? System.Data.DataRow dr;
???? dt.Columns.Add(
new System.Data.DataColumn( " id " , typeof (Int32)));
???? dt.Columns.Add(
new System.Data.DataColumn( " PkID " , typeof (string)));
???? dt.Columns.Add(
new System.Data.DataColumn( " Title " , typeof (string)));
????
for ( int i = 0 ; i < 6 ; i ++ )
??? {

?????? dr
= dt.NewRow();
?????? dr[
0 ] = i;
?????? dr[
1 ] = " 123456789123456789123456789 " ;
?????? dr[
2 ] = " <a >歡迎光臨【孟憲會之精彩世界】</a> " ;
?????? dt.Rows.Add(dr);
???? }

???? System.Data.DataView dv
= new System.Data.DataView(dt);
????
return dv;
?? }


?? protected
void Page_Load( object sender, EventArgs e )
{

????
if ( ! IsPostBack)
{

?????? GridView1.BorderWidth
= Unit.Pixel( 2 );
?????? GridView1.BorderColor
= System.Drawing.Color.DarkOrange;
?????? GridView1.DataSource
= CreateDataSource();
?????? GridView1.DataBind();
???? }

?? }


?? protected
void Button1_Click( object sender, System.EventArgs e )
{

???? Response.Clear();
???? Response.Buffer
= true ;
???? Response.Charset
= " GB2312 " ;
???? Response.AppendHeader(
" Content-Disposition " , " attachment;filename=FileName.xls " );
????
// 如果設置為 GetEncoding("GB2312");導出的文件將會出現亂碼?。?!
???? Response.ContentEncoding = System.Text.Encoding.UTF7;
???? Response.ContentType
= " application/ms-excel " ; // 設置輸出文件類型為excel文件。
???? System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
???? System.Web.UI.HtmlTextWriter oHtmlTextWriter
= new System.Web.UI.HtmlTextWriter(oStringWriter);
????
this .GridView1.RenderControl(oHtmlTextWriter);
???? Response.Output.Write(oStringWriter.ToString());
???? Response.Flush();
???? Response.End();

?? }

?? public override
void VerifyRenderingInServerForm( Control control )
{ }
?? protected
void GridView1_RowDataBound( object sender, GridViewRowEventArgs e )
{
????
if (e.Row.RowType == DataControlRowType.DataRow)
???
{
?????? e.Row.Cells[
1 ].Attributes.Add( " style " , " vnd.ms-excel.numberformat:@; " );
???? }

?? }

</ script >

< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
??
< title > 將 GridView 導出到 Excel 文件中 </ title >
</ head >
< body >
??
< form id ="form1" runat ="server" >
????
< asp:GridView ID ="GridView1" runat ="server" OnRowDataBound ="GridView1_RowDataBound"
?????? AutoGenerateColumns
="false" >
??????
< Columns >
????????
< asp:BoundField HeaderText ="序號" DataField ="id" />
????????
< asp:BoundField HeaderText ="身份證號" DataField ="PkID" />
????????
< asp:BoundField HeaderText ="網址" DataField ="Title" ReadOnly ="true" HtmlEncode ="false" />
??????
</ Columns >
????
</ asp:GridView >
????
< asp:Literal ID ="HiddenOut" runat ="server" />
????
< asp:Button ID ="Button1" runat ="server" Text ="導出" OnClick ="Button1_Click" />
??
</ form >
</ body >
</ html >

?

另一個簡單的方法:

導出Excel按鈕的點擊事件:

private void btnMIME_CLick(object sender,System.Targetargs e)
{
Response.ContentType="application/vnd.ms-excel");
Response.Charset="";
this.EnableViewState=false;
System.IO.StringWriter sw=new StringWriter();
System.Web.UI.HtmlTextWriter hw=new HtmlTextWriter(sw);
dsShow.RenderControl(hw);
Response.Write(sw.ToString());
Response.End();
}

ASP.NET 2.0中將 GridView 導出到 Excel 文件中


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产亚洲精品成人久久网站 | 人成午夜欧美大片免费视频 | 日本高清毛片视频在线看 | 亚洲精品国产第一综合99久久 | 在线视频综合视频免费观看 | 亚洲欧美在线一区 | 国产成人综合亚洲欧洲色就色 | 97中文字幕在线 | 日韩中文字幕一在线 | 免费网站毛片 | 日本不卡在线观看 | 欧日韩一区二区三区 | 黄色影院免费 | 深夜网站在线观看 | 国产成人欧美一区二区三区的 | 青青青国产免费全部免费观看 | 亚洲精品二区中文字幕 | 呦女www | 色噜噜狠狠色综合免费视频 | 精品72久久久久久久中文字幕 | 鲁鲁狠色综合色综合网站 | 亚洲天天做日日做天天欢毛片 | 亚洲欧美日韩成人 | 亚洲欧美日韩在线一区二区三区 | 黄页在线播放网址 | 色狗综合 | 天天色天天综合网 | 欧美专区亚洲专区 | 久久精品视频9 | 一级a做爰片欧欧美毛片4 | 天天操天天干天天摸 | 久草国产精品 | 亚洲精品自拍视频 | 狠狠色丁香婷婷综合视频 | 成人欧美一级毛片免费观看 | 国产成人精品在线观看 | 5252色欧美在线男人的天堂 | 亚洲狠狠婷婷综合久久久久网站 | 久久新地址 | 免费观看黄a一级视频日本 免费观看黄色 | 九九精品在线播放 |