標(biāo)記中的控件可以在呈現(xiàn)之前調(diào)用此方法,以便在控件被置于標(biāo)記外時(shí)顯示錯(cuò)誤信息。發(fā)送回或依賴于注冊的腳本塊的控件應(yīng)該在Control.Render方法的重寫中調(diào)用此方法。呈現(xiàn)服務(wù)器窗體元素的方式不同的頁可以重寫此" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

ASP.NET 2.0中將 GridView 導(dǎo)出到 Excel 文件中

系統(tǒng) 2177 0

下面代碼實(shí)現(xiàn)將 GridView 導(dǎo)出到 Excel文件中。

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

沒有這個(gè)方法,程序?qū)?bào)錯(cuò)。

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 >歡迎光臨【孟憲會(huì)之精彩世界】</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 " );
????
// 如果設(shè)置為 GetEncoding("GB2312");導(dǎo)出的文件將會(huì)出現(xiàn)亂碼!!!
???? Response.ContentEncoding = System.Text.Encoding.UTF7;
???? Response.ContentType
= " application/ms-excel " ; // 設(shè)置輸出文件類型為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 導(dǎo)出到 Excel 文件中 </ title >
</ head >
< body >
??
< form id ="form1" runat ="server" >
????
< asp:GridView ID ="GridView1" runat ="server" OnRowDataBound ="GridView1_RowDataBound"
?????? AutoGenerateColumns
="false" >
??????
< Columns >
????????
< asp:BoundField HeaderText ="序號(hào)" DataField ="id" />
????????
< asp:BoundField HeaderText ="身份證號(hào)" DataField ="PkID" />
????????
< asp:BoundField HeaderText ="網(wǎng)址" DataField ="Title" ReadOnly ="true" HtmlEncode ="false" />
??????
</ Columns >
????
</ asp:GridView >
????
< asp:Literal ID ="HiddenOut" runat ="server" />
????
< asp:Button ID ="Button1" runat ="server" Text ="導(dǎo)出" OnClick ="Button1_Click" />
??
</ form >
</ body >
</ html >

?

另一個(gè)簡單的方法:

導(dǎo)出Excel按鈕的點(diǎn)擊事件:

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 導(dǎo)出到 Excel 文件中


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久中文网 | 午夜不卡一区二区 | 91福利国产在线观看网站 | 日韩成人中文字幕 | 男女真实无遮挡xx00动态图120秒 | 魏千翔 | 免费能直接在线观看黄的视频 | 国产美女在线免费观看 | 欧美一级二级视频 | 国产性色视频在线高清 | 日本动漫三级 | 国产高清在线精品免费 | 欧美日韩第二页 | 丁香婷婷综合五月六月 | 日本综合欧美一区二区三区 | 免费国产一区二区 | 久久夜视频 | 91精品网| 日本在线免费观看视频 | 免费久久久久 | 国产成人精品免费视频大全可播放的 | 日本一区二区在线视频 | 久久视频精品 | 污视频网站免费看 | 精品一区二区电影 | 中文字幕在线免费观看 | 欧美 video | 久久久久99 | 久久精品国产99久久久古代 | 成人性生活视频在线播放 | 精品国产不卡一区二区三区 | 中文字幕日韩在线 | 在线免费观看h片 | 成人福利在线视频免费观看 | 国产高清在线视频 | 五月激情六月 | 激情视频网站 | 清草在线视频精品 | 国产高清免费视频 | 国产精品成人在线观看 | 夜夜爱夜夜操 |