0

我在 ASP.NET 中使用SmtpClient'sSend方法从联系我们页面发送电子邮件。在发送消息时,我想显示加载图像。更具体地说,当用户按下发送按钮发送电子邮件时,加载图像会出现,一旦消息发送,加载图像就会消失。我知道我可以使用onclick方法来显示加载图像。但是,一旦发送消息,如何删除此图像?

4

4 回答 4

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>

如果您不熟悉更新面板,请查看此更新面板介绍

于 2012-08-14T18:39:11.823 回答
1

我会通过 ajax 调用您的发送方法/操作,然后在success回调中隐藏加载 div。

您可能还想在 ajax 调用中添加一个错误处理程序,这样如果无法发送消息,加载文本就不会停留在那里。

于 2012-08-14T18:32:49.723 回答
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,并且在发送电子邮件后,如果成功,您将返回一个字符串“已发送”。

于 2012-08-14T18:39:00.517 回答
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();
        });
于 2012-08-14T18:41:44.137 回答