我有一個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 =假。我測試了If語句,並且它的工作正常,它返回true,我放入其中的任何內容都會執行。
你的代碼似乎沒問題,問題一定在別的地方。 – 2011-05-28 17:51:58
是的,這就是我的想法......不知道可能會干擾什麼。 – Sara 2011-05-28 17:53:15
您是否在表單上設置了驗證組?如果是這樣,您需要將'validationgroup'屬性添加到''標記中。 –
2011-05-28 21:27:52