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