仅对单个按钮进行现场验证

Bjö*_*ist 13 asp.net validation requiredfieldvalidator

我在模式对话框内的文本框上有以下验证器.

<asp:RequiredFieldValidator runat = "server" 
                            ErrorMessage = "Role name can not be empty."
                            ControlToValidate = "tbxRoleName" />
Run Code Online (Sandbox Code Playgroud)

它的工作原理应该是这样,除了验证触发aspx页面上的每个其他按钮OnClick处理程序.由于对话框不可见,看起来按钮只是在页面上不起作用.我的解决方法是在页面上的所有按钮上添加CausesValidation ="false".但这是一个非常糟糕的解决方案,我认为应该有一个更聪明的方法.

小智 23

将ValidationGroup分配给每个验证器以及应该触发验证的按钮(但不是另一个按钮).就像是:

<asp:RequiredFieldValidator ValidationGroup='valGroup1' ... />

<asp:Button ValidationGroup='valGroup1' Text='I trigger validation' ... />
Run Code Online (Sandbox Code Playgroud)


ek_*_*_ny 9

如何设置ValidationGroup?

http://msdn.microsoft.com/en-us/library/ms227424.aspx

  • 对于那些看到这个答案的人来说,技术是在验证器和Button上设置ValidationGroup属性,以将Button与一组验证器相关联. (3认同)

小智 5

您也可以对按钮使用“causesvalidation”。如果它是 false 按钮​​将不会响应 aspx 页面中的验证。

例子: <asp:Button runat="server" Text="Cancel" CausesValidation="false" />