如何解决仅在 C# 方法成功运行后显示元素
我正在 ASP.NET 框架中创建一个联系页面,我试图在发送电子邮件后制作一个框,但我不知道如何仅在该方法运行时显示该消息,我可以制作它一小段时间后消失,但每次刷新页面时,框都会回来。这是我想出的:
我的提交按钮和 Label1 是我只想在我的 Clickfunction 运行时显示的内容:
<asp:TextBox ID="txtName" runat="server" placeholder="Namn"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server" ErrorMessage="Fyll i Namn" ControlToValidate="txtName"></asp:RequiredFieldValidator>
<asp:TextBox ID="txtEmail" runat="server" placeholder="E-mail"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Fyll i Email" ControlToValidate="txtEmail"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ValidationExpression="^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" ID="RegularExpressionValidator1" runat="server" ErrorMessage="Felaktig Email" ControlToValidate="txtEmail"></asp:RegularExpressionValidator>
<input style="display: none" type="text" name="phone" />
<asp:TextBox ID="txtPhone" runat="server" placeholder="Telefon" AutoCompleteType="HomePhone"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Fyll i Telefon" ControlToValidate="txtPhone"></asp:RequiredFieldValidator>
<asp:TextBox ID="txtMessage" runat="server" placeholder="Meddelande" TextMode="MultiLine" Rows="8"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Fyll i Meddelande" ControlToValidate="txtMessage"></asp:RequiredFieldValidator>
<br />
<asp:Button ID="Button1" runat="server" Text="Skicka" OnClick="Button1_Click" OnClientClick="disableElement()" UseSubmitBehavior="false" />
<br />
<div id="labelBox">
<asp:Label ID="Label1" runat="server" Text="Tack för ditt meddelande!"></asp:Label>
</div>
我的点击功能:
protected void Button1_Click(object sender,EventArgs e)
{
System.Diagnostics.Debug.WriteLine("Clicked");
try
{
if (Page.IsValid)
{
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress(WebConfigurationManager.AppSettings[""]);
mailMessage.To.Add(WebConfigurationManager.AppSettings[""]);
mailMessage.Subject = "Förfrågan";
mailMessage.Body = "Namn: " + txtName.Text + "<br />" + "Telefon: " + txtPhone.Text + "<br />" + txtMessage.Text;
mailMessage.IsBodyHtml = true;
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com",587);
smtpClient.EnableSsl = true;
smtpClient.Credentials = new System.Net.NetworkCredential(WebConfigurationManager.AppSettings[""],WebConfigurationManager.AppSettings[""]);
smtpClient.Send(mailMessage);
txtName.Text = String.Empty;
txtEmail.Text = String.Empty;
txtPhone.Text = String.Empty;
txtMessage.Text = String.Empty;
}
} catch(Exception ex)
{
Label1.Text = "Problem" + ex;
}
}
解决方法
认为您可能正在寻找“可见”属性。
<asp:Label ID="Label1" runat="server" Visible="False" Text="Tack för ditt meddelande!"></asp:Label>
然后当你想让它在客户端可见时就做
Label1.Visible = true;
在您的事件处理程序中。
“可见”属性完全阻止将控件推送到客户端 PC。如果您希望控件存在于客户端,但被隐藏,最简单的方法可能是定义一个 CSS 类
.hidden { display: none; }
然后使用 CssClass 属性
Label1.CssClass = "";
或
<asp:Label ID="Label1" runat="server" CssClass="hidden" Text="Tack för ditt meddelande!"></asp:Label>
显示/隐藏控件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。