![](/img/trans.png)
[英]Clarification on temporarily disabling a submit button for a number seconds, then re-enable it?
[英]After disabling a Submit button with JS, re-enable after file download
我正在研究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();
[不知道這是否是好的代碼-這不是我的-但卻能完成工作:)]
基本上,我想知道以下兩者之一:
看起來這應該這樣做:基本上,設置與文件響應一個cookie,並讓瀏覽器以解鎖頁面等待該cookie。
問題可能是您根本不加載新頁面。
由於內容分配是附件,因此瀏覽器將不會重新加載頁面,而只會將服務器返回的內容保存到磁盤。
您需要以某種方式重新加載頁面,但是在獲取文件后如何執行此操作方面我沒有很好的想法。
有一個骯臟的hack。 您可以使用setTimeOut方法啟用和更改后退按鈕標題/圖像。
因此,您可以編寫類似於以下內容的服務器端代碼
btn.Attributes.Add(“ onclick”,“ this.disabled ='true'; this.value ='Processing ...'; _ doPostback(this,null); setTimeout(function(){啟用按鈕邏輯...。設置按鈕的文本/ img},);“);
服務器端下載附件事件不會完全同步,但是您可以根據服務器配置將超時設置為2-5秒。
謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.