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

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統(tǒng) 2477 0

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

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

沒有這個方法,程序?qū)箦e。

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");導出的文件將會出現(xiàn)亂碼!!!
???? 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 ="網(wǎng)址" 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 文件中


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 曲阜市| 尚志市| 衡阳县| 繁昌县| 华安县| 瓦房店市| 綦江县| 喀喇沁旗| 长春市| 深圳市| 古丈县| 临城县| 荣成市| 尉犁县| 建湖县| 同仁县| 永嘉县| 永新县| 永登县| 酒泉市| 广宁县| 蒙城县| 华容县| 如皋市| 白玉县| 攀枝花市| 平顶山市| 藁城市| 永德县| 贡觉县| 汪清县| 资溪县| 桦南县| 宜兰市| 和平区| 石景山区| 阳新县| 晴隆县| 噶尔县| 凯里市| 金川县|