14

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

<asp:RequiredFieldValidator runat = "server" 
                            ErrorMessage = "Role name can not be empty."
                            ControlToValidate = "tbxRoleName" />

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

4

4 回答 4

24

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

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

<asp:Button ValidationGroup='valGroup1' Text='I trigger validation' ... />
于 2014-02-06T10:45:33.587 回答
9

设置一个验证组怎么样?

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

于 2011-06-13T15:05:55.723 回答
5

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

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

于 2017-11-23T04:16:01.960 回答
1

Button 有一个属性 CausesValidation,可以禁用该按钮的验证。更多信息:http: //msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.causesvalidation.aspx

于 2011-06-13T15:07:33.067 回答