ASP.NET多字段验证

时间:2009-01-22 17:46:33

标签: c# asp.net

在ASP.NET 2中,我使用了Field Validators和RequiredField验证器,但我不确定如何处理这样的情况。
我在页面上有两个复选框,我需要确保至少设置了其中一个复选框。所以,如果你看二进制,它可以是01,10或11,但它不能是00.我的问题是,用复选框最好的方法是什么?

普通的ASP验证器可以处理这个,或者我是否需要创建一个如上所述的整数值,隐藏在某处并使用RangeValidator进行测试以确保THAT值永远不为零?

5 个答案:

答案 0 :(得分:8)

最坏的情况是你可以写一个CustomValidator,你可以随心所欲。听起来像你需要的是:

isValid = Check1.Checked | Check2.Checked

答案 1 :(得分:4)

答案 2 :(得分:3)

这个控件(由我编写)支持CheckBox和CheckBoxList:

http://www.codeproject.com/KB/validation/AtLeastOneOfValidator.aspx

只需将其添加到visual studio,将其放在页面上,然后将复选框添加到其控件列表中。它将像任何其他验证器控件一样工作。

答案 3 :(得分:1)

自定义验证器是显而易见的解决方案。此外,在使用自定义验证器时,您还应检查服务器端的有效性,以防javascript由于某种原因而失败。

P.S。:不要总是相信客户端(浏览器)发送给你的东西。

答案 4 :(得分:0)

以下是我就此确切问题撰写的文章。我还想验证使用CustomValidator很容易的多个控件,但我不满意的一个问题是如果你纠正了验证问题,那么在你回发之前错误就不会消失。

我想出了一种方法来隐藏错误消息并重新验证并写了一篇关于它的小博客文章。检查一下,看看你的想法。

http://coding.infoconex.com/post/ASPNET-CustomValidator-that-validates-multiple-controls-using-both-Server-Side-and-Client-Side-scripting.aspx