我的asp.net
页面有多个text-boxes
,并且DropDownLists
都有必填字段验证器。
我的网站还有多个页面,您可以通过单击按钮在它们之间移动。(所有页面都有所有按钮)当一个页面加载并决定我想转到另一个页面而不在表单中输入信息时,我单击一个按钮移动到一个单独的页面并且弹出验证并且我无法更改页面,它每次都阻止我?
关于如何阻止这种情况的任何想法?
我的asp.net
页面有多个text-boxes
,并且DropDownLists
都有必填字段验证器。
我的网站还有多个页面,您可以通过单击按钮在它们之间移动。(所有页面都有所有按钮)当一个页面加载并决定我想转到另一个页面而不在表单中输入信息时,我单击一个按钮移动到一个单独的页面并且弹出验证并且我无法更改页面,它每次都阻止我?
关于如何阻止这种情况的任何想法?
我知道您已经找到了解决方案,但我只是想提供另一种方法供人们查看。使用验证器时,通常使用 ValidationGroups。当一个验证器属于一个 ValidationGroup 时,它只会被该验证组中的另一个控件触发。例如:
<asp:TextBox ID="NameBox" runat="server"/>
<asp:RequiredFieldValidator ID="NameVal" ControlToValidate="NameBox"
ValidationGroup="ValSubmit" runat="server"/>
//...More input fields and validators...
<asp:Button ID="SubmitButton" ValidationGroup="ValSubmit" runat="server"/>
使用此方法,任何具有“ValSubmit”ValidationGroup 的验证器将仅由 SubmitButton 触发,而不会由其他控件触发。现在,您不必将 CausesValidation="false" 放在导致回发的所有其他内容上。
正如其他人所提到的,将 CausesValidation 属性设置为 false。
<asp:Button ID="MyButton" Text="Go Back" CausesValidation="False" />
这直接来自Microsoft 帮助页面:
默认情况下,单击 Button 控件时会执行页面验证。页面验证确定与页面上的验证控件关联的输入控件是否都通过验证控件指定的验证规则。
您可以使用 CausesValidation 属性指定或确定在单击 Button 控件时是否在客户端和服务器上执行验证。要防止执行验证,请将 CausesValidation 属性设置为 false。
注意:当您使用 PostBackUrl 属性回发到不同的页面时,您应该将 CausesValidation 属性设置为 false。回发到其他页面时,您应该明确检查验证。有关示例,请参阅 PostBackUrl 属性的备注部分。对于重置或清除按钮,此属性通常设置为 false,以防止在单击按钮时执行验证。
当 CausesValidation 属性的值设置为 true 时,您还可以使用 ValidationGroup 属性来指定 Button 控件对其进行验证的验证组的名称。
将属性设置CausesValidation = "false"
为您不想触发验证的按钮
CausesValidation="false"
在按钮上;)
<asp:Button CausesValidation="True|False" />
获取或设置一个值,该值指示单击 Button 控件时是否执行验证。