多个文本框的asp.net验证

时间:2012-03-17 02:45:34

标签: asp.net

我有两个asp:TextBox。用户需要在至少一个文本框中输入值。 请让我知道如何验证以确保数据输入至少其中一个框。 感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用CustomValidator验证TextBoxes。

protected void ValidateBoxes(object sender, ServerValidateEventArgs e)
{
    if (TextBox1.Text == "" && TextBox2.Text == "")
        e.IsValid = false;
    else
        e.IsValid = true;
}

您还应该在.aspx页面指定验证器。

<asp:CustomValidator ID="Validator1" runat="server" ControlToValidate="TextBox1"
                     OnServerValidate="ValidateBoxes" 
                     ErrorMessage="• Enter Text" ValidationGroup="check"
                     Display="None">
</asp:CustomValidator>

请记住,CustomValidator和触发回发的Button的ValidationGroup属性应该相同。所以,你的按钮应该是下面的东西。

<asp:Button ID="Button1" runat="server" Text="Hey"
            ValidationGroup="check"
            OnClick="Operation"> 
</asp:Button>

答案 1 :(得分:0)

使用CustomValidator,在代码隐藏中,只有当两个TextBox都不为空时,才能将IsValid属性设置为true:

http://asp.net-tutorials.com/validation/custom-validator/

http://p2p.wrox.com/asp-net-1-0-1-1-basics/19729-custom-validator-two-text-box.html

与客户端解决方案类似的东西:

asp.net validate textbox - at least one text box must have data in

使用两个RequiredValidator的替代解决方案:

void Button_Click(Object sender, EventArgs e) 
{
    if (TextBoxRequiredValidator1.IsValid && TextBoxRequiredValidator2.IsValid)
    {
      // Process page
    }
    else
    {
      MessageLabel.Text = "Both TextBoxes must be filled";
    }
}