我有两个asp:TextBox。用户需要在至少一个文本框中输入值。 请让我知道如何验证以确保数据输入至少其中一个框。 感谢。
答案 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";
}
}