我想創建一個Web應用程序,我有一個按鈕,如果我點擊按鈕,然後指定的文件將被下載並且按鈕應該被禁用。下面的代碼我用這樣做無法禁用按鈕後回發asp.net
protected void btnDownload_Click(object sender, EventArgs e)
{
btnDownload.Enabled = false;
string filepath = @"D:\SomeLayout.pdf";
string filename = Path.GetFileName(filepath);
Stream stream = null;
try
{
stream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read);
long bytesToRead = stream.Length;
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
while (bytesToRead > 0)
{
if (Response.IsClientConnected)
{
byte[] buffer = new Byte[10000];
int length = stream.Read(buffer, 0, 10000);
Response.OutputStream.Write(buffer, 0, length);
Response.Flush();
bytesToRead = bytesToRead - length;
}
else
{
bytesToRead = -1;
}
}
}
catch (Exception ex)
{
}
finally
{
if (stream != null)
{
stream.Close();
}
}
}
一旦我點擊按鈕文件下載,但按鈕仍然啓用。我試過所有下載代碼從其他方法調用,但同樣的問題發生。但是,如果我刪除這些代碼進行下載,那麼點擊按鈕後,它將變爲禁用狀態。我不確定問題的原因,請幫助我獲得解決方案。
的asp.net按鈕我用
<asp:Button ID="btnDownload" runat="server" Text="Download" OnClick="btnDownload_Click"/>
即使它可以通過Java腳本/用會議要求,jQuery,請建議我一個解決方案。
你的Page_Load中有什麼或者Page_Load調用的另一個函數可能會重新啓用回發按鈕? – mason
@mason不,我沒有在頁面加載中加入任何代碼 – Riki