Toon posts:

[ASP.NET] RequiredFieldValidator C#

Pagina: 1
Acties:

Verwijderd

Topicstarter
Vele artikelen hier en daar gelezen, maar toch kom ik er niet uit.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
veldID = 6;

txtbox = new TextBox();
txtbox.ID = veldID.ToString();
cel.Controls.Add(txtbox);

RequiredFieldValidator rqvd = new RequiredFieldValidator();
rqvd.ID = "rq" + veldID.ToString();
rqvd.ControlToValidate = veldID.ToString();
rqvd.ErrorMessage = "Dit veld is verplicht";
rqvd.Display = ValidatorDisplay.Dynamic;
cel.Controls.Add(rqvd);

btn = new Button();
btn.Text = "opslaan";
btn.Click += new EventHandler(btnSave);
cel.Controls.Add(btn);


resulteert in
code:
1
2
3
4
5
6
7
<input name="6" type="text" id="6" class="inptextbox" />

<span id="rq6" controltovalidate="6" errormessage="Dit veld is verplicht" 
display="Dynamic" evaluationfunction="RequiredFieldValidatorEvaluateIsValid" 
initialvalue="" style="color:Red;display:none;">Dit veld is verplicht</span>

<input type="submit" name="_ctl15" value="opslaan" />


maar toch gaat het niet goed, ik krijg geen melding bij het opslaan.

Kan iemand mij verder helpen?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19-05 13:45

gorgi_19

Kruimeltjes zijn weer op :9

aspnet_regiis -c gedraaid?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • WormLord
  • Registratie: September 2003
  • Laatst online: 30-03 16:26

WormLord

Devver

Met welke browser test je? De asp.net validators doen het standaard namelijk alleen op internet explorer.

Verwijderd

de validators werken volgens mij ook met firefox e.d. het is gewoon een simpel stukje javascript. En volgens mij (dacht ik) werkt dat ook buiten IE maar ik kan het mis hebben.

  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 00:56

Delphi32

Heading for the gates of Eden

RequiredFieldValidator werkt ook in Opera (die toch wat kieskeuriger is in zijn JavaScript-ondersteuning). Er is geen reden om bij ASP.NET pagina's exclusief voor IE te kiezen.

[edit]
ik zie ineens dit in je output-html staan: style="color:Red;display:none;". Foutje in je style sheet?

[ Voor 27% gewijzigd door Delphi32 op 28-11-2004 12:21 ]


Verwijderd

Delphi32 schreef op zondag 28 november 2004 @ 12:20:
RequiredFieldValidator werkt ook in Opera (die toch wat kieskeuriger is in zijn JavaScript-ondersteuning). Er is geen reden om bij ASP.NET pagina's exclusief voor IE te kiezen.

[edit]
ik zie ineens dit in je output-html staan: style="color:Red;display:none;". Foutje in je style sheet?
Nee. De validator wordt pas zichtbaar als er een submit gedaan wordt en er geen waarde is ingevuld.

Verder werken de validators in ASP.NET 1.x (volgens mij) alleen in IE op de clientside. In bijvoorbeeld firefox zal een postback gedaan worden en de validatie alleen op de server gebeuren. In ASP.NET 2.0 is dit niet meer het geval (afaik).

TS: Is er een reden voor waarom je de controls programmatisch toevoegt? Zoniet, dan zou ik aanraden om het declaratief te doen (dus in je .ascx of .aspx). In dit geval hoef je je niet zorgen te maken over het feit dat je de controls op de juiste plek toevoegt, en dat je ze ook na een postback weer toevoegt. De juiste plek in dit geval zou CreateChildControls zijn. Ze moeten na een postback ook "weer" worden toegevoegd om, omdat anders de viewstate niet meer geldig is.

[ Voor 27% gewijzigd door Verwijderd op 28-11-2004 13:09 ]


Verwijderd

Topicstarter
[b][message=22230850,noline]WilcoB schreef op zondag 28 november TS: Is er een reden voor waarom je de controls programmatisch toevoegt? Zoniet, dan zou ik aanraden om het declaratief te doen (dus in je .ascx of .aspx). In dit geval hoef je je niet zorgen te maken over het feit dat je de controls op de juiste plek toevoegt, en dat je ze ook na een postback weer toevoegt. De juiste plek in dit geval zou CreateChildControls zijn. Ze moeten na een postback ook "weer" worden toegevoegd om, omdat anders de viewstate niet meer geldig is.
Ik heb bewust voor deze methode gekozen omdat ik mijn toevoegschermen opmaak vanuit de database en generiek aanmaak dus.

Ik ben op zich nu al een stukje verder, ik heb in mijn opslaan knop het volgende toegevoegd
code:
1
2
3
4
5
6
7
8
9
private void btnSave(object sender, EventArgs e)
{
    Validate();
    
    if (IsValid)
    {
        //het werkelijke opslaan
    }
}


dat correct werkt, als de gegevens zijn ingevoerd mag ik doorgaan met het werkelijke opslaan, maar als ik onjuist invul en de meldingen komen op mijn scherm krijg ik vervolgens na het juist invullen van de velden het opslaan niet meer werkend. Of tewel, hij moet opnieuw valideren.
Pagina: 1