Avatar billede karsten_larsen Praktikant
30. januar 2005 - 20:34 Der er 4 kommentarer og
2 løsninger

RequiredFieldValidator - Må kunne gøres mere smart !

Jeg har forskellige forms og bruger forskellige validator for  dem.

I princippet bør f.eks. bare 2 ud af 3 form være udfyldt eller nogle frem for nogle andre.

Jeg har løst det på følgende måde i codebehind, VB, men det må kunne gøres mere smart.

Findes der ikke en fancy funktion til noget sådanne?

Kan Validitor bruges som true/false?


  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
        Dim var_fornavn As Integer
        Dim var_efternavn As Integer
        Dim antal As Integer

        If Len(Request("txtFornavn")) > 0 Then
            var_fornavn = 1
        End If

        If Len(Request("txtEfternavn")) > 0 Then
            var_efternavn = 1
        End If

        If Len(Request("txtAdresse")) > 0 Then
            var_adresse = 1
        End If

        antal = var_fornavn + var_efternavn + var_adresse

        If antal >= 2 Then
            Response.Redirect("http://www.eksperten.dk")
        End If

    End Sub

?:-) karsten_larsen
Avatar billede script Nybegynder
30. januar 2005 - 23:43 #1
Der er 6-7 forskellige validitore i menuen, har du set på dem? der er en til at feltet fx ikke må være tom.
Avatar billede karsten_larsen Praktikant
31. januar 2005 - 13:37 #2
script->

Hvilke andre validitore kan bruges? Vil compare, range, regularexpression, custom og summery ikke give det samme problem.

Jeg bruger RequiredFieldValidator, men hvordan ser jeg i codebehind hvorvidt feltet er udfyldt korrekt og dermed kunne handle på det.

F.eks.

tekstbox 1 kobles til RequiredFieldValidator1
tekstbox 2 kobles til RequiredFieldValidator2
tekstbox 3 kobles til RequiredFieldValidator3

Såfremt at to af tekstboxene er udfyldt skal der foretages en handling f.eks. redirect til en anden side.

:-) karsten_larsen
Avatar billede script Nybegynder
31. januar 2005 - 14:03 #3
Den er værre, fordi at de der validatore der er. De bliver checket på client siden, og kommer altså ikke ned på din code behind før ønskerne er opfyldt. Måske kunne du lave noget med compare, alle 3 tekstbokse, også lave det sådan at de ikke skal ens men at de alle 3 skal være forskellige. På den måde kan du indtaste noget i 2 af felterne, og det 3. er tomt altså forskelligt. Det kan være at det vil virke.
Avatar billede casper_skovgaard Nybegynder
31. januar 2005 - 16:32 #4
Jeg er ikke stærk i VB så du må selv lige oversætte :)

Start med
this.Validate();
denne metode sætter IsValid på alle Validator kontroller

herefter kan du chekke hver Validator om den er valid fx:
txtFornavnValidator.IsValid();
Avatar billede karsten_larsen Praktikant
01. februar 2005 - 19:26 #5
script-> jeg havde lige glemt det med clientside, så skal custom jo bruges.
casper skovgaard-> det lykkedes til sidst med isvalid, jeg kendte ikke til den funktion.

For andre som evt. kan bruge løsningen til noget så er den:

    Private Sub btnVidere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVidere.Click
        If val3.IsValid And val4.IsValid Then
            Response.Redirect("http://www.eksperten.dk")
        End If
    End Sub

hvor val3 og val4 er ID på en custom validator

casper skovgaard vil du også lave et svar, så deler jeg pointene mellem jer.

:-) karsten_larsen
Avatar billede casper_skovgaard Nybegynder
01. februar 2005 - 19:55 #6
:)
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