我在asp.net网页上有两个文本框,其中一个或两个都需要填写。两者都不能留空。如何在asp.net中创建验证器?
答案 0 :(得分:7)
您需要 CustomValidator 才能完成此任务。
以下是一些展示基本用法的代码。在提交回调中调用IsValid之后将显示自定义验证器文本,并且将从Response.Write调用中显示一些文本。
<强> ASPX 强>
<asp:TextBox runat="server" ID="tb1" />
<asp:TextBox runat="server" ID="tb2" />
<asp:CustomValidator id="CustomValidator1" runat="server"
OnServerValidate="TextValidate"
Display="Dynamic"
ErrorMessage="One of the text boxes must have valid input.">
</asp:CustomValidator>
<asp:Button runat="server" ID="uxSubmit" Text="Submit" />
代码背后
protected void Page_Load(object sender, EventArgs e)
{
uxSubmit.Click += new EventHandler(uxSubmit_Click);
}
void uxSubmit_Click(object sender, EventArgs e)
{
Response.Write("Page is " + (Page.IsValid ? "" : "NOT ") + "Valid");
}
protected void TextValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = (tb1.Text.Length > 0 || tb2.Text.Length > 0);
}
答案 1 :(得分:7)
您需要创建一个执行以下操作的方法来处理ServerValidate事件:
void ServerValidation (object source, ServerValidateEventArgs args)
{
args.IsValid = TextBox1.Text.Length > 0 || TextBox2.Text.Length > 0;
}
答案 2 :(得分:3)
除了创建服务器端验证之外,您还可以使用ClientValidationFunction上的CustomValidator属性来提供客户端验证。这可能看起来像这样:
function(sender, args) {
args.IsValid = document.getElementById('<%=TextBox1.ClientID%>').value != ''
|| document.getElementById('<%=TextBox2.ClientID%>').value != '';
}
答案 3 :(得分:-1)
Onclientclick您的按钮或任何提交您的页面调用javascript函数,如此
function valtxtbox(){
if (document.getElementById('<%=TextBox1.ClientID%>').value== '' && document.getElementById('<%=TextBox2.ClientID%>').value== '')
{
alert('You must enter in data!');
return false;
}