我有2个文本框,称为最低版本和最高版本,要求用户输入版本(如1.3.4)。在给定的时间,只有一个可以是空白,而不是两个。所以我提供了自定义字段验证器。我也提供了正则表达式来验证输入的值是否正确。
当我点击按钮输入无效版本字段时,我可以看到按钮点击事件被触发。能帮忙吗?
<asp:Label ID="lblMinimum" runat="server" Text="Minimum Version : " CssClass="alignLeft"></asp:Label>
<asp:TextBox ID="txtMinimumVersion" runat="server" Width="312px" CssClass="alignRight" ValidationGroup="validate"></asp:TextBox>
<asp:RegularExpressionValidator ID="revModuleVersion" runat="server" ControlToValidate="txtMinimumVersion"
ValidationExpression="^\d+(\.\d+)+$" ErrorMessage="* Please enter valid version number" ValidationGroup="validate"/>
<asp:Label ID="lblMaximum" runat="server" Text="Maximum Version : " CssClass="alignLeft"></asp:Label>
<asp:TextBox ID="txtMaximumVersion" runat="server" Width="312px" CssClass="alignRight" ValidationGroup="validate"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtMaximumVersion"
ValidationExpression="^\d+(\.\d+)+$" ErrorMessage="* Please enter valid version number" ValidationGroup="validate"/>
<asp:Button ID="btnUpdateNow" runat="server" EnableViewState="False" Text="Create now"
OnClick="btnCreateNow_Click" CausesValidation="false" ValidationGroup="validate"></asp:Button>
<asp:CustomValidator ID="custValidateModuleVersion" runat="server" Display="Dynamic" ErrorMessage="* Maximum version should be greather or equal to Minimum version"
OnServerValidate="custValidateModuleVersion_ServerValidate"></asp:CustomValidator>
<asp:CustomValidator ID="custValidate" runat="server" Display="Dynamic" ErrorMessage="* Please enter atleast one version"
OnServerValidate="CustomValidator_ServerValidate"></asp:CustomValidator>
答案 0 :(得分:0)
您已经提到CausesValidation =“false”。将其设为true或将其删除
<asp:Button ID="btnUpdateNow" runat="server" EnableViewState="False" Text="Create now" OnClick="btnCreateNow_Click" ValidationGroup="validate"></asp:Button>
CausesValidation属性指定在单击Button控件时是否验证页面。
默认情况下单击按钮时会执行页面验证。
此属性主要用于在单击取消或重置按钮时阻止验证。