按钮从服务器端下载 CSV

本文关键字:CSV 下载 服务器端 按钮 | 更新日期: 2023-09-27 18:35:46

所以我正在尝试创建一个下载按钮,用于创建一个填充数据表中数据的csv文件。 我正在尝试在服务器端执行此操作(希望使此按钮适用于chrome/ie/firefox等),但似乎什么也没发生,我似乎看不出为什么。

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();
}

按钮从服务器端下载 CSV

所以这是我需要添加的内容来解决我的问题。 我正在使用UpdatePanel作为我的下载按钮,因此我需要将以下行添加到服务器端的Page_Load上。

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

更多信息可以在这里找到:链接

这解决了我的"在IE/Firefox/Chrome上下载用户生成的数据"问题。

如果您在页面上显示<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>

如果这不是问题,那么我认为可能需要提供更多的代码和/或细节来为您提供更好的答案。