我創建了一個用於提取數據的界面,有幾個簡單的步驟。執行過程時刷新頁面
用戶從下拉框中選擇他們想要的數據,他們點擊「檢查可用」按鈕,如果有可用的記錄,顯示「發送請求」按鈕。
點擊發送請求按鈕後,SQL表被髮送到excel文件,該文件稍微用vba處理,然後用戶通過C#發送郵件並鏈接到該excel文件。
我面臨的問題是,用戶在一兩秒後不耐煩,並開始反覆搗碎「發送請求」按鈕。這種急躁使應用程序崩潰。
我怎樣才能使頁面的行爲,以便點擊「發送請求」後,頁面刷新,但過程仍然通過服務器進行,電子郵件仍然從C#發送。
public void SendRequest_Click(object sender, EventArgs e)
{
//Insert amazing line of code that refreshes the web form but does everything beyond this line
SendRequest.Visible = false;
//Creating a new class
QueryMule mule = new QueryMule();
Label11.Visible = true;
string myfilename = Label3.Text;
string splitusernum = Label4.Text;
string dtablenum = Label4.Text;
string exportnum = Label4.Text;
//Export all export tables to mercuryexport excel file
mule.SQLExport(18, splitusernum, exportnum);
//Creating a new excel application to open the mercury template and run its macro
ExcelApp.Application appExl;
ExcelApp.Workbook workbook;
ExcelApp.Worksheet newSheet;
ExcelApp.Range Range;
appExl = new ExcelApp.Application();
RegionName.SelectedItem.Value + timestampeddone + ".xlsm";
workbook = appExl.Workbooks.Open(@"filepath", Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value);
appExl.Visible = true;
appExl.DisplayAlerts = true;
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.To.Add '''REMOVED EMAIL ADDRESS
message.Subject = "Delivery System";
message.From '''REMOVED EMAIL ADDRESS
message.Body = "filepath" + myfilename;
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("mailhost");
smtp.Send(message);
Label4.Text = "Email Sent";
mule.DropTable(dtablenum);
mule.DropTable1(dtablenum);
mule.DropTable2(dtablenum);
mule.DropExportTable(dtablenum);
}
或許考慮更新面板或者至少是禁用「發送請求「按鈕之前回發 –