0

我在一个页面中有两个按钮。第一个按钮(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());
        }
    }
}
4

2 回答 2

9

您需要的是 validationGroup 属性 所需的归档验证器将具有validationGroup.

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

例子:

在这里,我使用关联的名称创建TextBox, 以便RequiredFeildValidatorValidationGroup验证分配给验证组的控件Group1Button1Button1Group1

<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" />
于 2013-11-10T15:13:16.737 回答
0

您可以为页面的不同部分设置不同的验证组。当您将按钮用于一个验证组时,它只会检查属于该组的验证控件。

于 2013-11-10T15:11:20.430 回答