Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

ASP.NET validatie meerdere dezelfde user controls 1 pagina

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een pagina met daarop 3x dezeflde user control.
Deze user control bevat verschillende validators.

Het probleem is dat bij het drukken op de knop alleen de validators van de desbetreffende user control moeten afgaan.

Nu wil ik dit oplossen met behulp van de validationgroup. Bij het renderen van de html van de user control doe ik het volgende:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
foreach (TableCell c in GridViewWeekstaat.FooterRow.Cells)
            {
                foreach (Control ctrl in c.Controls)
                {
                    if (ctrl is RequiredFieldValidator) { ((RequiredFieldValidator)ctrl).ValidationGroup = this.UniqueID + "Footer"; }
                    if (ctrl is RangeValidator) { ((RangeValidator)ctrl).ValidationGroup = this.UniqueID + "Footer"; }
                    if (ctrl is RegularExpressionValidator) { ((RegularExpressionValidator)ctrl).ValidationGroup = this.UniqueID + "Footer"; }
                    if (ctrl is CompareValidator) { ((CompareValidator)ctrl).ValidationGroup = this.UniqueID + "Footer"; }
                    if (ctrl is CustomValidator) 
                    { 
                        ((CustomValidator)ctrl).ValidationGroup = this.UniqueID + "Footer"; 
                    }
                    if (ctrl is Button) { ((Button)ctrl).ValidationGroup = this.UniqueID + "Footer"; }


Dit werkt redelijk. Alleen op het moment dat ik bijvoorbeeld bij het drukken op de knop ook serverside ga valideren, dan zijn de validationgroups niet gewijzigd, dus dan werkt het niet.

Logisch, want de validatie op de server gebeurd voordat de html wordt gerenderd volgens mij.

Hoe kan ik dit oplossen. Is er niet een mogelijkheid om in de html van de user control iets te zetten in de trend van:
validationgroup = this.UniqueID

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:52

TeeDee

CQB 241

Deze 'knop' staat op elk usercontrol of zijn het 3 controls, en vervolgens 1 knop?

Je zou eventueel een <asp:HiddenField> in je control plaatsen en deze in de ItemDataBound of iets dergelijks weer uit kunnen lezen.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Ik heb zitten experimenteren,
en heb nu het volgende

Elke user control heeft zijn eigen knop en validationsummary
Bij alle validators heb ik nu:
validatingroup = '<%# ID %>'

Dit ook bij de knop en bij de summary.

Nu valideert hij de pagina wel. Dat gaat goed.
Alleen krijg ik wel van alledrie de controls de validationsummary te zien met de dingen die in de eigen control fout zijn.

Als ik in de eerste control alles invul en op toevoegen klik, dan voegt hij het toe en laat hij in de eerste control geen validationsummary zien.

Echter bij control 2 en 3 zegt hij dat de waardes niet kloppen. Het lijkt erop dus of de andere controls toch op de een of andere manier gevalideerd worden.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:52

TeeDee

CQB 241

Heb je bij je Validationsummary ook de Validationgroup goed gezet?

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Ja, maar na alles nog een keertje te hebben nagelopen en opnieuw gecompileerd, werkt het.
In ieder geval bedankt.

Het probleem waar ik mee dat is dat "<%# ID %>" niet werkt. Het moeten persee enkele quotes zijn.