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

时间:2013-11-10 15:07:09

标签: 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());
        }
    }
}

2 个答案:

答案 0 :(得分:10)

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

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

示例:

此处我创建TextBox RequiredFeildValidator ValidationGroupGroup1Button1相关联,以便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" />

答案 1 :(得分:0)

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