2013-10-17 84 views
1

所以我試圖創建一個下載按鈕,創建一個csv文件,充滿了數據表中的數據。我試圖在服務器端做到這一點(希望使這個按鈕爲鉻/ IE/Firefox等工作),似乎沒有發生,我似乎無法看到爲什麼。按鈕從服務器端下載csv

protected void downloadBtn_Click(object sender, EventArgs e) 
{ 
     Response.Clear(); 
     Response.ContentType = "text/csv"; 
     Response.AddHeader("content-disposition", "attachment; filename=Test.csv"); 
     Response.Write("blahblahblah"); 
     Response.End(); 
} 
+1

顯示頁面標記的相關部分。特別是鏈接到此事件的按鈕 – NotMe

+1

JLYK

回答

1

如果您出示您的頁面上的<input type="button">那麼你的方法可能甚至沒有得到所謂的,因爲一個按鈕不提交一個表單,或對默認服務器的請求。

在這個例子中,這三個要素將下載Test.csv:

<html> 
<body> 
<form id="downloadForm" method="get" action="/downloads/Test.csv"> 
<input type="button" value="Get File" onclick="javascript:document.getElementById('downloadForm').submit()"> 
<input type="submit" value="Submit"> 
</form> 
<a href="/downloads/Test.csv">Test.csv</a> 
</body> 
</html> 

如果這不是問題的話,我想多一點的代碼和/或細節可能需要提供給你一個更好的答案。

+0

該方法確實被調用。我試着把一個try/catch語句,我得到這個異常:「無法評估表達式,因爲代碼已優化或本地框架在調用堆棧之上」 – JLYK

2

所以這裏是我需要補充來解決我的問題。我爲我的下載按鈕使用了UpdatePanel,因此我需要將以下行添加到服務器端的Page_Load上。

ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page); 
    scriptManager.RegisterPostBackControl(this.downloadBtn); 

更多信息可以在這裏找到:link

這解決了我的 「下載用戶生成的IE /火狐/ Chrome瀏覽器數據」 的問題。

相關問題