Avatar billede ha9953 Nybegynder
14. december 2003 - 22:36 Der er 3 kommentarer og
1 løsning

Flere former for validering i custom control

Jeg har lavet følgende custom control der både tjekker om en textbox er udfyldt og at antal tegn er under et given antal. Nu vil jeg også gerne have koblet på at den skal tjekke om det er en gyldig email (aktså xxx@xxx.xx)

Hvordan f... gør jeg lige det?

Option Explicit
Option Strict


Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Text

Namespace Validate

    Public Class EmailKravMax : Inherits BaseValidator
   
        Protected _MaxTegn As Integer = 2147483647       
        Protected _KravBesked As String = "Skal udfyldes"
        Protected _Maxbesked As String = "Max tegn overskredet"
       
        Public WriteOnly Property MaxTegn() As Integer       
            Set(ByVal Value As Integer)        
                _MaxTegn = Value       
            End Set        
        End Property
       
        Public WriteOnly Property KravBesked() As String       
            Set(ByVal Value As String)           
                _KravBesked = Value           
            End Set       
        End Property
       
        Public WriteOnly Property Maxbesked() As String       
            Set(ByVal Value As String)           
                _Maxbesked = Value           
            End Set       
        End Property
       
        Protected Overrides Function EvaluateIsValid() As Boolean       
            Dim val As String
           
            val = Me.GetControlValidationValue(Me.ControlToValidate)
           
            If ( val.Length = 0 ) Then           
                Me.Text = _KravBesked           
                Return False           
            ElseIf (val.Length > _MaxTegn ) Then           
                Me.Text = _Maxbesked           
                Return False           
            Else           
                Return true           
            End If       
        End Function
   
    End Class


End Namespace
Avatar billede odegaard Nybegynder
15. december 2003 - 08:20 #1
Jeg ville selvfølgelig bruge en RegularExpressionValidator, som bindes til tekstboksen. Reg-ex'en sættes til at tjekke for at den indeholder gyldige tegn, både før og efter @, nogle tegn efter @ efterfulgt af punktum, og derefter 2-3 bogstaver.

Ex. (tjekker dog ikke i sig selv for om email-adressen er tom)

<asp:RegularExpressionValidator ControlToValidate="tbEmail"
Text="Ugyldig e-mail adresse"
ValidationExpression="^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|([a-zA-Z0-9\-\.]+))\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$"
ForeColor="red" runat="server" />
Avatar billede odegaard Nybegynder
15. december 2003 - 08:21 #2
Hvis du vil have serverside validering som du har gang i dér, så kan du stadig bruge den samme RexEx. Men jeg synes nu det er noget smartere med ASP.NETs validatorer.
Avatar billede ha9953 Nybegynder
15. december 2003 - 10:08 #3
Tak for svaret - men ovenstående var gek selv klar over :-) - meningen med det hele er at få samlet 3 validatorer i en control som kan genbruges igen og igen - problemet er når jeg skal sætte regularexprerssion validatoren ind i min custom control - der kan jeg ikke lige finde hoved og hale i hvordan jeg får den implementeret
Avatar billede odegaard Nybegynder
15. december 2003 - 10:17 #4
Du sætter den bare på siden, dér hvor du vil have fejlmeddelelsen ud. ControlToValidate peger på ID'et på den textbox der skal valideres. Du kan evt. slå ClientSideScript fra, og så tjekke på Page.IsValid om alle kontroller er korrekt udfyldte.

Men som sagt kan du bare benytte en RexEx.Match på ovenstående ValidationExpression. Se i din SDK. Dér er en masse eksempler.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester