c# - 用JS禁用提交按钮后,文件下载后重新启用

标签 c# javascript asp.net forms

我正在开发 ASP.NET 应用程序。目前,当用户单击某个项目上的“保存”时,我们会禁用“保存”按钮,将其文本更改为“正在保存...”等等。这工作正常,因为该按钮会导致回发,从而导致加载新页面,并且该页面上的“保存”按钮不再被禁用。

我们现在希望将其应用于其他操作:发布(与保存没有太大区别)、导入(同样,与保存非常相似,但基于用户在上一步中上传的数据)、导出(下载 XML 文件)给用户)等。

导出给我带来了问题 - 该按钮保持禁用状态。我认为这是因为服务器发回 XML 文件而不是新的网页,因此浏览器只显示相同的页面。

服务器端代码如下

Response.Clear();
Response.BufferOutput = true;
Response.ContentType = "text/xml";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + whatever);
[push file contents into Response.OutputStream]
Response.End();

[不知道这是否是好的代码 - 它不是我的 - 但它完成了工作:)]

基本上,我想知道:

  • 一种使服务器在响应中发送回新页面以及 XML 的方法,从而以与其他页面相同的方式重新启用按钮,或者
  • 一种让浏览器/JS 在文件发送后重新启用按钮的方法。

最佳答案

看起来像this应该这样做:本质上,用文件响应设置一个 cookie,并让浏览器等待该 cookie 以解锁页面。

关于c# - 用JS禁用提交按钮后,文件下载后重新启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4153273/

相关文章:

c# - Entity Framework 生成不同的sql查询

c# - LINQ Count 和 Max 一起使用

c# - 使用 C# .Net 访问 SQL Server 数据库的最佳方式

javascript - 无法创建正则表达式

asp.net - vs2010 - 用双引号包围字符串的快捷方式

javascript - 如何在 asp.net 页面中使用 javascript 创建弹出窗口 - 无法在 javascript 弹出窗口中传递值

c# - 应用程序无缘无故卡住,没有死锁,无法附加到 Visual Studio 进行调试

javascript - HTML 选择附加选项

javascript - 使用 $httpBackend + $resource 进行 Angular karma 单元测试,无需使用模块引导

asp.net - 如何在查询字符串中传递两个参数?