文本框在页面刷新时记住其数据
本文关键字:数据 刷新 文本 | 更新日期: 2023-09-27 18:32:29
我的页面上有 2 个文本框和一个按钮。当我单击按钮时,文本框中的文本会通过电子邮件发送。但是,当我刷新页面并且没有内容时,我也会收到一封电子邮件。
protected void Button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(TextBox1.Text) && !string.IsNullOrEmpty(TextBox2.Text))
{
//email logic
TextBox1.Text = "";
TextBox2.Text = "";
}
else
{
//do nothing
}
}
在这里,单击按钮时,我会收到一封电子邮件,但是当我刷新页面时,即使没有数据,它也进入循环并收到一封电子邮件。
我该如何阻止这种情况?
在Page_Load
事件中执行以下操作,并将文本框和按钮保持在<asp:UpdatePanel>
中。然后,每次刷新页面时,页面都不会要求重新提交。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TextBox1.Text = string.Empty;
TextBox2.Text = string.Empty;
}
}
更新
将控件保留在更新面板中,如下所示
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Send mail" onclick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
您需要
使用 POST> 重定向> GET 模式。这是解释链接