我在页面中有两个按钮。第一个按钮(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());
}
}
}
答案 0 :(得分:10)
您需要的是validationGroup属性
所需的归档验证器将具有validationGroup
。
为两个验证器指定不同的validationGroup
名称。
示例:
此处我创建TextBox
RequiredFeildValidator
ValidationGroup
名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" />
答案 1 :(得分:0)
您可以为网页的不同部分设置不同的validation groups。当您使用一个验证组的按钮时,它只会检查属于该组的验证控件。