Sar*_*ara 4 vb.net asp.net validation customvalidator
我有一个CustomValidator,用于检查在文本框中输入的文本是否与数据库中的某些字段匹配.这之前一切都很好,但是从那时起我已经修改了很多页面并且它已经不再有效了.我不认为我改变了会影响这一点的任何事情,但显然我做了.我所有其他验证器(必需的字段验证器)都正常工作,但我的CustomValidator没有响应.
所以无论如何,这是我的代码:
的CustomValidator:
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="txtCoursePrefix" ErrorMessage="Course number is already taken."></asp:CustomValidator>
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
一切正常,直到CustomValidator1.SetFocusOnError = True且args.IsValid = False.我已经测试了If语句并且它正常工作,它返回true并且我放入其中的任何其他内容都会执行.
使用customvalidator时应该知道的事项:
如果您使用a验证ValidationGroup
,请不要忘记将其添加到您的CustomValidator
.
设置ControlToValidate
属性.
一CustomValidator
当控制永远不会触发ControlToValidate
,除非你设定的控制是空的ValidateEmptyText=true
.
使用时ClientValidationFunction="customClientValidationFunction"
使用以下签名:
function customClientValidationFunction(sender, arguments) {
arguments.IsValid = true; //validation goes here
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6499 次 |
最近记录: |