需要两个文本框,一个或两个

时间:2009-06-03 21:02:21

标签: asp.net

我在asp.net网页上有两个文本框,其中一个或两个都需要填写。两者都不能留空。如何在asp.net中创建验证器?

4 个答案:

答案 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)

尝试CustomValidator

您需要创建一个执行以下操作的方法来处理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;
}