2013-07-11 100 views
1

它可能不是正確的標題提出這個問題,因爲當我搜索它給動態網址的結果下載。那不是我想要的東西......(至少我覺得是不是)如何做動態下載鏈接

我的問題是,我需要動態創建的列表,說通訊爲例,列表獲取C#代碼使用循環創建和Response.Write()。源代碼來自一個數據庫,該數據庫只包含時事通訊的位置來源,日期和名稱。代碼的基本輸出是:

|News Letters 
|Date:  |Name:  |View button: |Download link: | 
|7/01/2013 |June News | [View] | [Download] | 
|8/01/2013 |July News | [View] | [Download] | 

或多或少...該表在循環中生成,因此它可以是任意長度。

我將如何去實現每個單獨的新聞信的下載? HTML代碼只是使用普通表格,而視圖按鈕是鏈接到源代碼的href鏈接。

+1

該通訊的格式是什麼? href鏈接到的是什麼? – Winks

+0

其pdf文件,但它可能只是關於任何文件格式。問題仍然是一樣的。 –

+0

這可能會幫助您開始:http://stackoverflow.com/questions/6358799/asp-net-programatically-bind-dataset-to-gridview – Asken

回答

2

更多信息。

<a href="link to newsletter.pdf" download>Download link</a> 

這將強制下載,而不是像正常打開pdf。

祝你好運!

+0

感謝:D它工作100% –

4

我不是100%如何試圖返回信息,但這將採取SqlDataReader並將數據讀取器響應中的每一行添加到表中的新行,並建立一個HTML字符串。

StringBuilder sb = new StringBuilder(); 
     sb.Append("<table><th>Date</th><th>Name</th><th>View</th><th>Download</th>"); 


     while (sqlDataReader.Read()) 
     { 
      sb.Append(string.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td><a href='{3}' download>Download</a></td></tr>", sqlDataReader["Date"], sqlDataReader["Name"], 
          sqlDataReader["LocationSource"], sqlDataReader["LocationSource"])); 
     } 

     sb.Append("</table>"); 

     return sb.ToString(); 

我做了小幅調整,發現我已經把下載的鏈接標籤內。這是一個HTML 5功能,如果您使用HTML5可以將單詞「下載」只是增加了HREF鏈路的末端,將強制下載而不是在瀏覽器中打開,在這裏 Force a browser to save file as after clicking link

+0

不幸的是,這不工作,因爲我也需要它。雖然是的,它會打開PDF文檔,但我需要它直接下載PDF,而無需先打開它。 –

+2

更新了HTML 5修復程序來解決此問題 – rh072005

+0

這是完美的!正是我需要感謝的很多 –