2012-08-14 53 views
0

我在ASP.NET中使用SmtpClientSend方法從contact-us頁面發送電子郵件。郵件正在發送時,我想顯示一個加載圖像。更具體地說,當用戶按下發送按鈕發送電子郵件時,加載圖像將出現,並且一旦發送消息,加載圖像將消失。我知道我可以使用onclick方法來顯示加載圖像。但是,如何在發送郵件後刪除此圖片?想顯示使用JavaScript「加載」文本?

回答

3

將您的按鈕封裝在更新面板中。

然後,您可以使用updateprogress模板顯示加載符號。

<asp:updatepanel id="MailUpdatePanel" runat="server">  
<contenttemplate> 


<asp:updateprogress id="UpdateProgress1" runat="server" associatedupdatepanelid="MailUpdatePanel" dynamiclayout="true"> 
     <progresstemplate> 
      <img src="images/loading.gif"> 
     </progresstemplate> 
</asp:updateprogress> 
<asp:Button ID="SendMail" runat="server" OnClick="SendMail_Click" Text="Mail" /> 
</contenttemplate> 
</asp:updatepanel> 

如果你是新的更新面板看一看這個introduction to update panels

+0

非常感謝!它確實有幫助。 – 2012-08-14 18:59:17

1

我會通過ajax調用你的send方法/動作,然後在success回調中隱藏加載div。

您可能還想向ajax調用添加錯誤處理程序,以便如果無法發送消息,則加載文本不會只停留在那裏。

1

如果您正在使用jQuery

$("#btonId").click(function(e){ 
e.preventDefault(); 

$("#loadingDiv").html("Sending...").fadeIn(300,function(){ 
    $.post("yourserverpage.aspx", { data : somedata },function(response){ 
     if(response=="sent") 
     { 
     $("#loadingDiv").html("Email Sent") 
     } 
     else 
     { 
      $("#loadingDiv").html("error in sending!"); 
     }  
    }); 

}); 
}); 

假設btnId是按鈕的ID發送和loadingDiv是要顯示加載消息的div ID和發送電子郵件後,您返回一個字符串「發送」,如果成功的話。

+0

好的解決方案,我會嘗試。謝謝! – 2012-08-14 19:01:29

0

最好的辦法這樣做,如果你正在使用AJAX,當用戶點擊按鈕來調用加載圖片,並在交易完成後進行處置。
下面是使用jQuery AJAX的例子:

HTML:

<input type='submit' ... onlick='$("#loading").fadeIn();'> 

JS:

$.post($('FORM').attr('action'), 
     {{args you wanna pass}}, 
     function (data) { 
      process_callback_data(data); 
      $("#loading").fadeOut(); 
     });