ASP:抛出错误消息后,CustomValidator继续执行

时间:2014-07-01 22:11:16

标签: asp.net vb.net customvalidator

ASP:在Validator呈现为False之后,CustomValidator继续执行我的其余代码。我有几个文本框(名称,日期,IdNumber,OtherShit) 这是一些代码:

<span class="grouping" id="span1" runat="server">
    <label>
        ID Number</label>
    <asp:TextBox ID="tbIdNumber" runat="server" MaxLength="6" Columns="10"></asp:TextBox>
    <asp:CustomValidator ID="CustomValidatorIdNumber" runat="server" ErrorMessage="Please enter date."
        ControlToValidate="tbIdNumber" OnServerValidate="CustomValidatorLocation_ServerValidate1">&nbsp;</asp:CustomValidator>
</span>

后面是控制验证器的后端代码:

Protected Sub CustomValidatorLocation_ServerValidate1(source As Object, args As ServerValidateEventArgs) Handles CustomValidatorIdNumber.ServerValidate
        Dim currentUserId = Things.AuthenticatedData.Get_CurrentUser.Id

        If (Convert.ToString(args.Value)) Is currentUserId Then
            args.IsValid = True
        ElseIf (Convert.ToString(args.Value)) IsNot currentUserId And bdpDate.IsNull Then
            args.IsValid = False
        End If
    End Sub

因此,每个登录的人都有一个其他用户都知道的ID。仅供参考,这是一个搜索过滤器。基本上我想要做的是:如果用户输入自己的ID,那么一切都很好,并将继续通过代码执行。如果用户键入其他用户ID,则还需要包含日期。如果没有包含日期​​,则在单击&#34;搜索&#34;时会抛出错误消息。 (但不执行搜索)直到他们提出日期。目前它完成了所有这些,但仍然执行搜索。嗯......请帮助......

1 个答案:

答案 0 :(得分:0)

确保将Page.IsValid()放在btnClick ... fml的右侧实例上。现在工作完美。