如何结合RegularExpressionValidator控件和RequiredFieldValidator?

Dan*_*iff 4 c# regex asp.net validation

我经常使用也是必填字段的正则表达式验证器.这导致页面上看起来像冗余控件.正则表达式验证器没有"必需"属性,这意味着我需要另一个控件.像这样:

<asp:TextBox ID="tbCreditCardNumber" runat="server" Width="200"></asp:TextBox>
<asp:RegularExpressionValidator ID="revCreditCardNumber" runat="server"
    ControlToValidate="tbCreditCardNumber" ValidationGroup="CheckoutGroup" ErrorMessage="Invalid Credit Card Number!"
    ValidationExpression="^(3[47][0-9]{13}|5[1-5][0-9]{14}|4[0-9]{12}(?:[0-9]{3})?)$">*</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="rfvCreditCardNumber" runat='server' ControlToValidate="tbCreditCardNumber" ValidationGroup="CheckoutGroup"
    ErrorMessage="Credit Card Number Required">*</asp:RequiredFieldValidator>
Run Code Online (Sandbox Code Playgroud)

有没有办法组合这两个控件,所以我不必键入这么多代码?

Joh*_*ncl 8

一个常见问题是验证器组件在未显示时仍然占用空间,如果您有多个,则看起来很奇怪,即最后一个被触发,留下更大的间隙到星号或其他错误标记.这可以通过添加以下内容轻松解决:

display="Dynamic"
Run Code Online (Sandbox Code Playgroud)

......给验证员.

但它并没有解决同时发生多次触发的问题,它仍然会连续显示许多验证器错误.那么自定义验证器可能是最好的解决方案.


Ian*_*obs 3

您可以结合功能来推出自己的 CustomValidator。除此之外,据我所知,没有。