我有两个文本框,用户应该输入其中一个 我想使用一个与Required Validator完全相同的验证器, 当用户按下提交控件所写的红色警报时 任何想法
提前致谢
答案 0 :(得分:1)
没有内置的Validator可以做到这一点,你必须建立一个自定义的:
尝试this:
或者您可以尝试使用后面的代码并使用onclick事件来验证文本框,然后在span中返回错误,如下所示:
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text == null)
{
if (TextBox2.Text == null)
{
errorMsg.InnerText = "Error" //use a span with runat server
}
}
}
答案 1 :(得分:0)
有两种方法可以解决这个问题,这两种方法都可以正常使用,我让客户决定他喜欢哪一种,
1-在ascx文件中使用JavaScript
当用户单击“提交”以执行服务器端验证时,2-生成红色标签 这就是我用过的东西
aspx文件
<asp:Label ID="PhoneLbl" runat="server" Visible="false" style="color:Red">(***) Enter Either Phone Number or Mobile Number</asp:Label>
代码背后的
protected void Sc_submit_button_Click(object sender, ImageClickEventArgs e)
{
PhoneLbl.Visible = false;
if (Page.IsValid == true)
{
if (txt_phonenumber.Text != string.Empty || txt_mobilenumber.Text != string.Empty)
{
// any code }
}
else
{
Sc_submit_button.Enabled = true;
PhoneLbl.Visible = true;
MobileLbl.Visible = true;
txt_phonenumber.Focus();
return;
}
}
}
这项工作对我有用!!
答案 2 :(得分:0)
使用CustomerValidation控件
当您在页面中删除自定义验证时,可以将验证器链接到控件,但如果要对多个控件执行多个验证,则需要包含以下属性
OnServerValidate="MyMethodOnServerSide"
并在服务器端定义该方法
protected void MyMethodOnServerSide(object source, ServerValidateEventArgs args)
{
if (string.IsNullOrEmpty(mytxt1.Text) &&
string.IsNullOrEmpty(mytxt2.Text))
{
args.IsValid = false;
return;
}
args.IsValid = true;
}
将args.IsValid
属性设置为您需要的值。另一方面,验证是在加载页面之前完成的,因此如果您单击一个按钮来执行操作,例如在一切正确的情况下从DB读取值,则需要在该操作上包含以下检查。
protected void cmdSearch_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
LoadDataFromDB();
}
}
当args.IsValid
为false时,Page.IsValid
也为假。希望这有帮助
答案 3 :(得分:-1)
您可以使用自定义验证器执行此操作