[c#] Custom Validator triggert niet...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Hoi ik heb een formulier met een captcha check, dit formulier zit in een user control:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="contact.ascx.cs" Inherits="Page" %>
<%@  Register Assembly="MSCaptcha"  Namespace="MSCaptcha" TagPrefix="cc1" %>
    <h1 id="hpageTitle" runat="server"></h1>
    <p id="pbodyText" runat="server"></p>
    <asp:Panel ID="form" runat="server">
        <fieldset>                              
            <legend><span>Uw contactgegevens</span></legend> 
            <div style="text-align:center;"><cc1:CaptchaControl ID="captcha" runat="server" CaptchaBackgroundNoise="None" CaptchaLength="5" CaptchaHeight="31" CaptchaWidth="100" CaptchaLineNoise="None" CaptchaMinTimeout="5" CaptchaMaxTimeout="240"  /></div>
            <div>
                <asp:label ID="Label7" Text="Vallidatiecode" runat="server" AssociatedControlId="cptext"/>
                <asp:TextBox type="text" class="required" name="cptext" id="cptext" runat="server" />
                <asp:customvalidator onServerValidate="CCValidate" Display="Static" ForeColor="#8E0017" CssClass="error" ControlToValidate="cptext" ID="RequiredFieldValidator51" runat="server" ErrorMessage="Dit veld is verplicht"/>
            </div>
            
        </fieldset>
        <fieldset class="buttons">
            <asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="Verzenden" />     
        </fieldset>
    </asp:Panel>


In code behind gebruik ik deze validatie functie:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
    public void CCValidate(Object source, ServerValidateEventArgs args)
    {

        captcha.ValidateCaptcha(cptext.Text);
        if (!captcha.UserValidated)
        {
            args.IsValid = false;
        }
        else {
            args.IsValid = true;
        }

    }


Toch triggered deze niet....
Het zal vast wel iets heel onbenulligs zijn, maar ik zie hem niet :z :z

Iemand een idee wat ik mis doe?

Acties:
  • 0 Henk 'm!

  • TUX2K
  • Registratie: September 2001
  • Laatst online: 17-09 12:46
Wordt je custom validator ook niet getriggered na een postback.
Dit heeft hij namelijk wel nog omdat het server side is.

Probeer in de Click btnUpload button van het forumlier is
code:
1
2
3
4
5
6
7
public void btnUpload_Click(object sender, EventArgs e)
{
     if(!IsValid)
         return;
   
      //De rest van jou code
}

[ Voor 23% gewijzigd door TUX2K op 01-07-2009 11:15 . Reden: Verduidelijkt ]


Acties:
  • 0 Henk 'm!

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Die had ik er idd al in zitten, en die geeft true aan, ik vond een ander voorbeeld van een customvalidator die werkte als hij er als enige in zit, maar met de gewone validators werkt het niet....

Ik ga nog even door met uitzoeken, misschien dat "gewone" validators niet goed samengaan met customvalidators :(

Acties:
  • 0 Henk 'm!

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Het volgende lijkt het geval:

-Als de andere validators in de pagina niet valideren, dan wordt de customvalidator sowieso niet gecheckt
-Als de andere validators valideren, maar de waarde leeg is, wordt de customvalidator niet gecheckt...

Acties:
  • 0 Henk 'm!

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Mjah om 1 of andere reden werkt het niet lekker, ik heb nu maar de Ajax:NoBot gebruikt...

Acties:
  • 0 Henk 'm!

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 20:55
Moet je niet nog een Page.Validate() aanroepen in je page_load, staat me iets van bij, om server side validatie ook toe te voegen?

Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 17-09 15:19
En als je nu een nieuw project aanmaakt en een pagina maakt met alleen die validator? Dan kun je in ieder geval uitsluiten dat jouw custom validator wel goed ingesteld staat/werkt.

Acties:
  • 0 Henk 'm!

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
jip_86 schreef op woensdag 01 juli 2009 @ 20:54:
En als je nu een nieuw project aanmaakt en een pagina maakt met alleen die validator? Dan kun je in ieder geval uitsluiten dat jouw custom validator wel goed ingesteld staat/werkt.
Ik zal er vandaag nog eens even naar kijken, ik zat gister met een deadline, en zat beetje vast, dus heb uiteindelijk de Ajax Nobot er op tijd in kunnen verwerken ;)

Acties:
  • 0 Henk 'm!

  • TUX2K
  • Registratie: September 2001
  • Laatst online: 17-09 12:46
Een custom validator triggerd ook niet als de tekstbox leeg is.
Dan moet je in aspx bij de validator nog even validateEmptyText of zo iets toevoegen.
Misschien dat je dat wat verder helpt

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je zult idd gewoon de ValidateEmptyText property op true moeten zetten of een extra RequiredFieldValidator toe moeten voegen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • NEOeo
  • Registratie: December 2003
  • Laatst online: 03-09 13:01
raptorix schreef op woensdag 01 juli 2009 @ 11:43:
Het volgende lijkt het geval:

-Als de andere validators in de pagina niet valideren, dan wordt de customvalidator sowieso niet gecheckt
-Als de andere validators valideren, maar de waarde leeg is, wordt de customvalidator niet gecheckt...
Ik zit met dit zelfde probleem.
Ik heb serverside en clientside customvalidators geprobeerd, maar toch blijkt een postback altijd noodzakelijk om de customvalidator te triggeren.
Is er manier om de customvalidator direct met de andere validators te triggeren?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Heb je dit al eens geprobeerd?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • NEOeo
  • Registratie: December 2003
  • Laatst online: 03-09 13:01
Kan je uitleg geven bij je link, want ik snap het niet.

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 20:53

Haan

dotnetter

Ik liep laatst ook tegen dit probleem aan. Het vervelende is dus dat RequiredFieldValidators eerst triggeren, en de CustomValidators niet. Wat er dan in de praktijk gebeurt, is dat je eerst een melding krijgt bij lege velden, dan denk je alles netjes ingevuld te hebben en klik je nog een keer op 'send', maar dan blijken er opeens nog andere velden niet te kloppen. Een oplossing had ik nog niet gevonden..

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • L-VIS
  • Registratie: April 2005
  • Laatst online: 17-09 16:00
Staat hier prima beschreven:
http://msdn.microsoft.com.../f5db6z8k%28VS.71%29.aspx

Is natuurlijk ook logisch dat server-side code pas wordt getriggerd na client-side code.

Acties:
  • 0 Henk 'm!

  • NEOeo
  • Registratie: December 2003
  • Laatst online: 03-09 13:01
Ja dat snap ik ook.
Maar javascript is gewoon client-side en dan werkt het blijkbaar ook pas na de postback...
Daar gaat mijn vraag dus ook over.

Acties:
  • 0 Henk 'm!

  • L-VIS
  • Registratie: April 2005
  • Laatst online: 17-09 16:00
Oh dan doe je iets niet goed. Maw die javascript wordt dan gewoon niet getriggerd. Je moet wel achter de knop een page.clientvalidate zetten (uit mijn hoofd..). Of je zet die validatiefunctie achter een onlbur van een text veld.
Pagina: 1