GridView打印和導出excel

1、總體思想

A、打印gridview數據:

gridview綁定的數據放到一個層中,點擊打印按鈕把層中的所有的信息傳遞到一個新的頁面,然後對此頁面進行全屏打印,啓用瀏覽器調用本機的打印機接口。

存在的問題:

如果開啓分頁,只能打印第一頁的數據

如果想打印的數據並不是gridview中的全部展示的列數據,也無法實現

B、導出excel的問題

這個操作太多了不再說明,需要注意的是如果開啓分頁導出的時候需要關閉分頁,並重新綁定數據

2、具體實現

A、層內的綁定的gridview的信息

 

<div id="printdiv">  

   <h4 style="width: 699px; text-align:Center"> 鑰匙借用登記表</h4>  

   <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"  

   Height="182px" Width="700px" DataKeyNames="ID" AllowPaging="true"  

   OnRowDeleting="GridView1_RowDeleting" 

            onselectedindexchanged="GridView1_SelectedIndexChanged"  onpageindexchanging="GridView1_PageIndexChanging"  >  

  

   <Columns>  

     <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" InsertVisible="False" ReadOnly="True" Visible="False" />  

     <asp:BoundField DataField="Date" HeaderText="日期時間" SortExpression="Date" />  

     <asp:BoundField DataField="Department" HeaderText="借用部門" SortExpression="Department" />  

     <asp:BoundField DataField="Reason" HeaderText="借用事由" SortExpression="Reason" />  

     <asp:BoundField DataField="Amount" HeaderText="借用數量" SortExpression="Amount" />  

     <asp:BoundField DataField="Borrower" HeaderText="借用人" SortExpression="Borrower" />  

     <asp:BoundField DataField="Tel" HeaderText="聯繫電話" SortExpression="Tel" />  

     <asp:BoundField DataField="Watch" HeaderText="值班人" SortExpression="Watch" />  

     <%--<asp:CommandField ShowDeleteButton="True"  />  --%>

   </Columns>  

  </asp:GridView>                                                   

</div>  

B、分頁的gridview用來展示,全部數據的girdview進行隱藏,而打印的時候選取隱藏的數據,這樣可以解決分頁無法打印多頁的問題。

<script type="text/javascript">

    window.onload = function () {

        var d1 = document.getElementById('Div1'); //獲取該div節點

        d1.style.display = 'none'; //值爲'none'設置爲隱藏。

    }

    function printPage() {  

         var newWin = window.open('printer', '', '');

         var titleHTML = document.getElementById("Div1").innerHTML;  

         newWin.document.write(titleHTML);  

         newWin.document.location.reload();  

         newWin.print();  

         newWin.close();  

    }  

</script>


C、導出excel的主要代碼

 protected void Button4_Click(object sender, EventArgs e)

    {

        Response.Clear();

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

        Response.Charset = "gb2312";

        Response.ContentType = "application/vnd.xls";

        System.IO.StringWriter stringWrite = new System.IO.StringWriter();

        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

        GridView1.AllowPaging = false;

        GridView1.AllowSorting = false;

        GridView1.DataBind();

        GridView1.RenderControl(htmlWrite);

        Response.Write(stringWrite.ToString());

        Response.End();  

        GridView1.AllowPaging = true;

        GridView1.AllowSorting = true;

        GridView1.DataBind();

    }

3、效果演示


打印效果:


導出效果:

 

源碼下載地址:

http://download.csdn.net/download/danqingcheng/10192012

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章