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