1

因此,我正在尝试创建一个下载按钮,该按钮会创建一个 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();
}
4

2 回答 2

2

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

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

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

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

于 2013-10-18T17:53:07.850 回答
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>

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

于 2013-10-17T19:24:29.570 回答