2010-12-02 81 views
0

我正在研究一個基於用戶輸入生成輸出列表的應用程序(ASP.NET,Webforms)。我想允許用戶將所述列表的內容保存爲文本文件,或者可能將其保存爲其他文件類型,例如.csv。解決這個問題的最好方法是什麼?可以用Javascript完成客戶端嗎?允許用戶將html列表的內容保存到文本文件

回答

2

我認爲您需要使用ActiveXJava AppletsSilverlight來做類似的事情。 JavaScript無權訪問本地文件系統。

另一種方法是在服務器上創建一個文件(物理地或實時地)並將其提供給用戶下載。這將讓他保存文件對話框。

要做到這一點,創建一個空白頁面(沒有任何標記,甚至沒有),設置Response.ContentType = 'text/plain'和使用Response.Write()寫入您的內容Page_Load

+0

有沒有辦法做到這一點serverside,然後將結果文件傳遞給客戶端? – Radu 2010-12-02 04:38:24

+0

更新了答案。 – decyclone 2010-12-02 04:41:12

1

通過構建和打開data URI,您可以純粹在客戶端JavaScript中生成純文本或csv文件。

實施例使用jQuery:

window.open(
    'data:text/csv;charset=utf-8,' + 
    escape(
     $('#yourlist li') // <- selector for source data here 
      .map(function(){ 
       // format row here 
       return $(this).text(); 
      }) 
      .get() 
      .join('\r\n') 
    ) 
); 

不幸的是,這種技術將不在IE由於缺乏數據URI支持直到IE8和安全限制一次IE added support for data URIs工作。你必須使用IE的替代技術,無論是再次訪問服務器還是使用ActiveX/Silverlight/Flash/Java Applet來避免大概已經在客戶端上進行數據往返。

相關問題