Hej. Kan du posta hur du har skrivit valideringskontrollen också. Du kan ha skrivit något fel i din AnvVerifikation_Databas(anvandarnamn.Text, "anvandarnamn", "tblMedlemmar", dbPath) metdo. Gå genom den igen och se så den inte alltid returnerar true.Problem med Custom Validation kontroll. Den reagerar alltid.
Jag har gjort en funktion som returnerar true eller false beroende på om den hittar ett värde i databasen. Hittar den så sätts den till true annars false. Jag anvaänder denna till mitt medlemsformulär där jag vill kolla om ett användarnamn redan finns registrerat i databasen.
Jag har sedan lagt in en CustomValidator kontroll på sidan som skall kolla användarnamnet. I Client Validation Function anropar jag en subrutin som kör funktionen som kollar användarnamnet. Meddelandet som skall visas är "Användarnamnet är redan registrerat! Välj ett annat."
Detta är functionen som kollar om användaren finns idatabasen och returnerar true/false (Denna fungerar korrect):
<code>
Function AnvVerifikation_Databas(strAnvandarnamn As String, strField As String, strTable As String, strDBConnection As String) As Boolean
Dim SQL As String
SQL = "SELECT * FROM " & strTable & " WHERE " & strField & " = '" & strAnvandarnamn & "'"
Dim Conn As New OLEDBConnection(strDBConnection)
Dim Cmd As New OLEDBCommand(SQL, Conn)
Dim DR As OLEDBDataReader
Conn.Open()
DR = Cmd.ExecuteReader()
If Dr.Read() Then
Return(True)
Else
Return(False)
End If
Conn.Close()
End Function
</code>
sedan är detta subrutinen som anropas av validation kontrollen:
<code>
Sub Anv_CustomValidation(source As Object, args As ServerValidateEventArgs)
If AnvVerifikation_Databas(anvandarnamn.Text, "anvandarnamn", "tblMedlemmar", dbPath) Then
args.IsValid = False
Else
args.IsValid = True
End If
End Sub
</code>
Nu är det så att mitt lilla problem är att validation kontrollen reagerar på alla värden. Vad jag än skriver in i textboxen så visa validation kontrollen meddelandet
"Användarnamnet är redan registrerat! Välj ett annat." Så jag kan aldrig komma vidare. Jag har satt en respons.write på functionen som kollar användarnamnet. Visar den false så skall validation kontrollen inte visa meddelandet men vare sig den visar false eller true så reagerar validation kontrollen. Vad e det jag har gjort fel?
//AndiSv: Problem med Custom Validation kontroll. Den reagerar alltid.
Sv: Problem med Custom Validation kontroll. Den reagerar alltid.
/Fredrik Normén NSQUARED2
http://www.nsquared2.net