加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – CustomValidator不工作

发布时间:2020-12-16 03:57:52 所属栏目:asp.Net 来源:网络整理
导读:我有一个CustomValidator,用于检查在文本框中输入的文本是否与数据库中的某些字段匹配.这之前一切都很好,但是从那时起我已经修改了很多页面并且它已经不再有效了.我不认为我改变了会影响这一点的任何事情,但显然我做了.我所有其他验证器(必需的字段验证器)都
我有一个CustomValidator,用于检查在文本框中输入的文本是否与数据库中的某些字段匹配.这之前一切都很好,但是从那时起我已经修改了很多页面并且它已经不再有效了.我不认为我改变了会影响这一点的任何事情,但显然我做了.我所有其他验证器(必需的字段验证器)都正常工作,但我的CustomValidator没有响应.

所以无论如何,这是我的代码:

的CustomValidator:

<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="txtCoursePrefix" ErrorMessage="Course number is already taken."></asp:CustomValidator>

VB代码隐藏:

Protected Sub CustomValidator1_ServerValidate(ByVal source As Object,ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate

    'Checking for duplicate course numbers

    'get values
    Dim checkPrefix = txtCoursePrefix.Text
    Dim checkNum = txtCourseNum.Text

    'db connectivity
    Dim myConn As New OleDbConnection
    myConn.ConnectionString = AccessDataSource2.ConnectionString
    myConn.Open()

    'select records
    Dim mySelect As New OleDbCommand("SELECT 1 FROM tableCourse WHERE prefix=? AND course_number=?",myConn)
    mySelect.Parameters.AddWithValue("@checkPrefix",checkPrefix)
    mySelect.Parameters.AddWithValue("@checkNum",checkNum)

    'execute(Command)
    Dim myValue = mySelect.ExecuteScalar()

    'check if record exists
    If myValue IsNot Nothing Then
        CustomValidator1.SetFocusOnError = True
        args.IsValid = False
    End If

End Sub

一切正常,直到CustomValidator1.SetFocusOnError = True且args.IsValid = False.我已经测试了If语句并且它正常工作,它返回true并且我放入其中的任何其他内容都会执行.

解决方法

使用customvalidator时应该知道的事项:

如果要使用ValidationGroup进行验证,请不要忘记将其添加到CustomValidator.

设置ControlToValidate属性.

除非设置ValidateEmptyText = true,否则当ControlToValidate控件为空时,CustomValidator控件永远不会触发.

使用ClientValidationFunction =“customClientValidationFunction”时,请使用以下签名:

function customClientValidationFunction(sender,arguments) {
   arguments.IsValid = true; //validation goes here
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读