页面中存在两个按钮时的asp.net验证

Spa*_*row 0 c# asp.net

我在页面中有两个按钮.第一个按钮(Button3)的功能是将确认邮件发送到第一个Textbox1中的邮件ID.第二个按钮(Button4)的功能是将值从textbox3和textbox4插入数据库.我为第一个文本框(textbox1)保留了必填字段验证器.因此,如果我将其留空并按下Button3,则会显示警告消息,该字段不能留空.但是,如果单击Button4,那么它会显示相同的警告消息,即该字段在textbox1旁边不能为空.为什么会这样?如何仅限制Button3的验证,而不限制Button4的验证?

这是我的C#代码,让你明白我到底在说什么.

protected void Button3_Click(object sender, EventArgs e)
    {
        MailMessage objMail = new MailMessage("mymail@gmail.com", TextBox1.Text, "confirm", TextBox2.Text);
        NetworkCredential objNC = new NetworkCredential("mymail@gmail.com", "mypassword");
        SmtpClient objsmtp = new SmtpClient("smtp.gmail.com", 587);
        objsmtp.EnableSsl = true;
        objsmtp.Credentials = objNC;
        objsmtp.Send(objMail);
    }
    protected void Button4_Click(object sender, EventArgs e)
    {
        try
        {
            String sCon = "SERVER=xyz;DATABASE=xyz;UID=xyz;password=xyz";
            MySqlConnection con = new MySqlConnection(sCon);
            MySqlCommand command = con.CreateCommand();
            command.CommandText = "insert into criminals values('"+TextBox3.Text +"','"+ TextBox4.Text + "')";
            con.Open();
            command.ExecuteNonQuery();
            con.Close();

        }
        catch (Exception ex)
        {
            Response.Write(ex.ToString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Sud*_*udi 10

你需要的是validationGroup属性所需的Filed Validator将具有validationGroup.

validationGroup 为两个验证器指定不同的名称.

例:

这里我创建的TextBoxRequiredFeildValidatorValidationGroup名称Group1 相关联,Button1以便Button1仅验证分配给验证组的控件Group1

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>


<asp:RequiredFieldValidator 
ID="RequiredFieldValidator1" 
runat="server" 
ErrorMessage="RequiredFieldValidator"
ValidationGroup="Group1" 
ControlToValidate="TextBox1">
</asp:RequiredFieldValidator>

<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="Group1" />
Run Code Online (Sandbox Code Playgroud)