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

Dan*_*anH 5 asp.net

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

Ala*_*son 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" />
Run Code Online (Sandbox Code Playgroud)

代码背后

    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);
    }
Run Code Online (Sandbox Code Playgroud)


Lan*_*per 7

试试CustomValidator.

您需要创建一个方法来执行以下操作来处理ServerValidate事件:

void ServerValidation (object source, ServerValidateEventArgs args)
 {
    args.IsValid = TextBox1.Text.Length > 0 || TextBox2.Text.Length > 0;
 }
Run Code Online (Sandbox Code Playgroud)