2012-08-30 57 views
0

我在這裏構建了一個c#web應用程序,並且我有一個Listview。我想在頁面上有一個按鈕,點擊後它會輕鬆打印列表視圖。任何人都知道如何做到這一點?從我的C#Web應用程序打印ListView

感謝 enter image description here

+0

您可以用訂單ID重定向到一個頁面的URL參數,並在網頁上添加'page_load'一箇中繼器,顯示數據的順序和它添加到你的身體標記 - 'window.print(); ' –

+0

你到目前爲止編碼了什麼?你做了一些研究嗎?這似乎是要求別人做你的工作,我不認爲這是你的意圖。 – danielQ

回答

0

嘗試在按鈕單擊事件中添加以下代碼。希望完全有助於。

this.ListView1.DataBind(); 
    StringWriter sw = new StringWriter(); 
    HtmlTextWriter hw = new HtmlTextWriter(sw); 
    ListView1.RenderControl(hw); 
    string ListViewHTML = sw.ToString().Replace("\"", "'").Replace(System.Environment.NewLine, ""); 
    StringBuilder sb = new StringBuilder(); 
    sb.Append("<script type = 'text/javascript'>"); 
    sb.Append("window.onload = new function(){"); 
    sb.Append("var printList = window.open('', '', 'left=0"); 
    sb.Append(",top=0,width=800,height=700,status=0');"); 
    sb.Append("printList.document.write(\""); 
    sb.Append(ListViewHTML); 
    sb.Append("\");"); 
    sb.Append("printList.document.close();"); 
    sb.Append("printList.focus();"); 
    sb.Append("printList.print();"); 
    sb.Append("printList.close();};"); 
    sb.Append("</script>"); 
    ClientScript.RegisterStartupScript(this.GetType(), "ListViewPrint", sb.ToString()); 
    this.ListView1.DataBind(); 
0

有跡象表明,我能想到的2種選擇:

  1. 在查詢字符串的ID(?也許是訂單號碼)發送給不同的頁面;從查詢字符串中讀取訂單ID,並在頁面中輸出詳細信息。然後調用window.printwindow.load

喜歡的東西:

Order o = DAL.GetOrderByID(int.Parse(Request.QueryString["OrderID"])); 
//output the order in this new page... 

在這個新的一頁,有這樣一行:

window.onload=function(){window.print();}; 
  1. 使用此jquery plugin做到這一點。它在頁面中創建一個框架並在框架上調用.print。似乎很容易實施。
+0

我相信在這種情況下jquery函數將在這裏工作,我會給它一個去。感謝您的建議。 – GabrielVa