<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      GridView導出Excel研究

      Introduction:

      GridView中的數據導出為Excelweb應用中的常見功能。在不同的應用場景下有不同的導出技術。在本文中我將介紹一些導出的技術,希望對您有所幫助

      GridView Export the Excel (Basic Code): 

      .

      首先看一個基礎的應用。創建一個表格,見截圖


       

      然后將數據庫中的數據綁定到GridView中的數據,代碼如下:

      private void BindData()

      {

      SqlConnection myConnection = new SqlConnection("Server=localhost;Database=School;Trusted_Connection=true");

      SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM Users", myConnection);

      DataSet ds = new DataSet();

      ad.Fill(ds);

      gvUsers.DataSource = ds;

      gvUsers.DataBind();

      }


      現在,GridView中已經綁定了數據,接下來的任務就是導出到Excel。下面是button事件中的代碼

      Response.ClearContent();

      Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");

      Response.ContentType = "application/excel";

      StringWriter sw = new StringWriter();

      HtmlTextWriter htw = new HtmlTextWriter(sw);

      gvUsers.RenderControl(htw);

      Response.Write(sw.ToString());

      Response.End();

      并且還需要override一下VerifyRenderingInServerForm方法(這一點非常重要,否則在點擊按鈕后會報錯,譯者注)代碼如下:

      public override void VerifyRenderingInServerForm(Control control)

      {

      }

      點擊導出按鈕后會彈出對話框,詢問您打開或保存。選擇打開文件,導出到Excel的結果如下圖:


      Exporting GridView to Excel With Style:

      您是否注意到了以上代碼存在一些的問題?是的,ID列開頭的0都被截去了。如果你的ID000345,導出后就編程了345。這個問題可以通過把css添加到輸出流中來解決。為了使ID列正確顯示,您需要將其儲存為文本格式。Excel中的文本格式表示為"mso-number-format:"\@"

      protected void Btn_ExportClick(object sender, EventArgs e)

      {

      string style = @"<style> .text { mso-number-format:\@; } </script> ";

      Response.ClearContent();

      Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");

      Response.ContentType = "application/excel";

      StringWriter sw = new StringWriter();

      HtmlTextWriter htw = new HtmlTextWriter(sw);

      gvUsers.RenderControl(htw);

      // Style is added dynamically

      Response.Write(style);

      Response.Write(sw.ToString());

      Response.End();

      }

      public override void VerifyRenderingInServerForm(Control control)

      {

      }

       在上面的代碼中,我通過”style”變量來控制GridView列的樣式。并通過Respnose.Write方法將其添加到輸出流中。最后把樣式添加到ID列。這一步需要在RowDataBound事件中完成

      protected void gvUsers_RowDataBound(object sender, GridViewRowEventArgs e)

      {

      if (e.Row.RowType == DataControlRowType.DataRow)

      {

      e.Row.Cells[1].Attributes.Add("class", "text");

      }

      }

       修改的結果如下:



      Exporting GridView With LinkButtons and Paging: 

      如果要導出的GridView中包含LinkButton或者分頁(出現分頁碼時,譯者注) 則將出現錯誤:


      通過修改頁文件可以修正這個問題:EnableEventValidation = "false".

      <%@ Page Language="C#" EnableEventValidation="false" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

      看一下導出的文件


       

      在導出的文件中可以看見linkbuttondropdownlist控件,雖然dropdownlist控件顯示的數據的確是用戶所選的項,但怎么看也不像是一個導出文件(我倒是覺的挺cool的:)譯者注),現在應如何移除dropdownlist并顯示選擇的文字呢?

       
      我寫了一個
      DisableControls函數,用使循環的方法將linkbuttondropdownlist替換成literal控件

      private void DisableControls(Control gv)

      {

      LinkButton lb = new LinkButton();

      Literal l = new Literal();

      string name = String.Empty;

      for (int i = 0; i < gv.Controls.Count; i++)

      {

      if (gv.Controls[i].GetType() == typeof(LinkButton))

      {

      l.Text = (gv.Controls[i] as LinkButton).Text;

      gv.Controls.Remove(gv.Controls[i]);

      gv.Controls.AddAt(i, l);

      }

      else if (gv.Controls[i].GetType() == typeof(DropDownList))

      {

      l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;

      gv.Controls.Remove(gv.Controls[i]);

      gv.Controls.AddAt(i, l);

      }

       

      if (gv.Controls[i].HasControls())

      {

      DisableControls(gv.Controls[i]);

      }

      }

      }

      方法非常簡單,只需將linkbutondropdownlist替換成literal控件,并將選擇項賦值給literal控件的文本屬性。該方法需要在導出前調用

      protected void Btn_ExportExcelPaging(object sender, EventArgs e)

      {

      DisableControls(gvUsers);

      Response.ClearContent();

      Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");

      Response.ContentType = "application/excel";

      StringWriter sw = new StringWriter();

      HtmlTextWriter htw = new HtmlTextWriter(sw);

      gvUsers.RenderControl(htw);

      Response.Write(sw.ToString());

      Response.End();

      }

       

      現在的Excel中就只剩下選中文本了




      原文:http://gridviewguy.com/ArticleDetails.aspx?articleID=197

      代碼下載:GridViewExportToExcelAllYouNeed.zip

      posted on 2006-08-24 20:27  stswordman  閱讀(59427)  評論(46)    收藏  舉報

      主站蜘蛛池模板: 亚洲欧洲色图片网站| 免费看欧美日韩一区二区三区 | 综合欧美视频一区二区三区| 999精品色在线播放| 在国产线视频A在线视频| 久久午夜无码免费| 成人一区二区三区久久精品| 天堂√最新版中文在线地址| 91久久偷偷做嫩草影院免费看 | 久久青青草原精品国产app| 日本黄色三级一区二区三区| 无码精品国产VA在线观看DVD| 欧美成人精品高清在线播放| 国产视频深夜在线观看| 吴堡县| 国产高清小视频一区二区| 果冻传媒色av国产在线播放 | 熟女亚洲综合精品伊人久久| 精品久久欧美熟妇www| 人妻无码久久久久久久久久久 | 国产精品美女免费无遮挡| 亚洲av无码专区在线亚| 久久99精品国产麻豆宅宅| 好紧好湿好黄的视频| 精品无码国产污污污免费| 四川丰满少妇无套内谢| 中文字幕人妻av12| 久久精品国内一区二区三区| 久久综合综合久久综合| av无码小缝喷白浆在线观看| 99在线小视频| 亚洲国产精品一区二区久| 蜜桃av多人一区二区三区| 国产在线乱子伦一区二区| 亚洲国产精品综合久久2007| 精品人妻中文字幕av| 视频一区二区三区自拍偷拍| 国产精品极品美女自在线观看免费| 亚洲av永久无码天堂影院| 无码精品国产va在线观看dvd| 色欲狠狠躁天天躁无码中文字幕|