標記中的控件可以在呈現之前調用此方法,以便在控件被置于標記外時顯示錯誤信息。發送回或依賴于注冊的腳本塊的控件應該在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久久精品久久久久久婷婷 | 美女视频黄的免费视频网页 | 一级毛片免费完整视频 | 四虎免费在线视频 | 久久久久综合 | 国产成人亚洲精品91专区手机 | 亚洲成a人片在线观看www | 久久国产精品无码网站 | 久久频这里精品99香蕉久 | 看黄色一级毛片 | 全亚洲最大的免费私人影剧院 | 波多野结衣乳巨码无在线观看 | 色 在线播放 | 精品国产免费久久久久久婷婷 | 97在线观看完整免费 | 7799国产精品久久久久99 | 在线色av | 中文字幕日韩女同互慰视频 | 国产成人精品久久亚洲高清不卡 | 国产黄mmd在线观看免费 | 四虎在线永久精品高清 | 在线a亚洲视频播放在线观看 | 狠狠干.com | 免费香蕉一区二区在线观看 | 99久久久免费精品免费 | 免费看欧美日韩一区二区三区 | 亚洲国产九九精品一区二区 | 伊人影院视频 | 国产日产精品 | 亚洲国产美女精品久久 | 精品一久久香蕉国产线看观 | 99热在线免费观看 | 婷婷综合 在线 | 亚洲不卡视频在线观看 | 国产午夜精品尤物福利视频 | 国产精品久久久香蕉 | 这里只有精品22 | 亚洲一区综合 | 爱爱免费视频网站 |