[C#] ValidationSummary text wijzigt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 19:35
Hoi allemaal,

ik heb een heel vreemd probleem m.b.t. een validationsummary.

Situatie:
Ik heb een formulier met meerdere validators van verschillende typen (required, regularexpression etc.).
Om een samenvatting te tonen van alle errors gebruik ik een validation summary.

1 van de textvelden word gebruikt voor het invoeren van een bedrijfsnaam. Echter kan het een bedrijf type verschillen (keus radiobuttonlist) en op basis daarvan word de tekst van de errormessage bepaald.
Voorbeeld foutmelding: <type bedrijf> is verplicht (waarbij <type bedrijf> dus in de code-behind a.d.h.v. de keus in de radiobuttonlist word bepaald)

Verander je het <type bedrijf>, veranderd dus de errormessage van de validator. Echter wijzigt de tekst binnen de ValidationSummary niet. Deze blijft de initiele waarde behouden. Ook als ik de validationsummary binnen het updatepanel zet. Rara?

Stukje voorbeeldcode (gestript van alle velden die er niet toe doen):

voorgrond
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<asp:PlaceHolder ID="ph1" runat="server">
        <fieldset>
            <asp:ValidationSummary ID="vsum" runat="server" DisplayMode="List" ForeColor="Red"
                HeaderText="Let op!" ShowSummary="true" ShowMessageBox="false" ValidationGroup="Order" />
        </fieldset>
    </asp:PlaceHolder>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:PlaceHolder ID="ph2" runat="server">
                <fieldset>
                    <ol style="list-style: none;">
                        <li></li>
                        <li>
                            <asp:RadioButtonList ID="rbl" runat="server" AutoPostBack="true" OnSelectedIndexChanged="rbl_SelectedIndexChanged">
                                <asp:ListItem Text="Bedrijf" Value="b"></asp:ListItem>
                                <asp:ListItem Text="Zorginstelling" Value="z"></asp:ListItem>
                            </asp:RadioButtonList>
                        </li>
                        <li>
                            <asp:TextBox ID="TextBox1" runat="server" />
                            <asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="TextBox1"
                                Display="Dynamic" InitialValue="" ErrorMessage="verplicht!" ValidationGroup="Order" />
                        </li>
                        <li>
                            <asp:Button ID="Button1" runat="server" Text="Klik hier" ValidationGroup="Order" />
                        </li>
                    </ol>
                </fieldset>
            </asp:PlaceHolder>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:PlaceHolder ID="ph3" runat="server">
        <fieldset>
            <asp:ValidationSummary ID="vsum1" runat="server" DisplayMode="List" ForeColor="Red"
                HeaderText="Let op!" ShowSummary="true" ShowMessageBox="false" ValidationGroup="Order" />
        </fieldset>
    </asp:PlaceHolder>


code-behind
code:
1
2
3
4
5
6
7
protected void rbl_SelectedIndexChanged(object sender, EventArgs e)
 {
    if (rbl.SelectedValue == "b")
        rfv1.ErrorMessage = "Bedrijf is verplicht";
    else if (rbl.SelectedValue == "z")
        rfv1.ErrorMessage = "Zorginstelling is verplicht";
}

[ Voor 0% gewijzigd door PdeBie op 13-04-2011 11:43 . Reden: Typo's ]


Acties:
  • 0 Henk 'm!

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 15:41

mOrPhie

❤️❤️❤️❤️🤍

Je ValidationSummary moet in elk geval in de updatepanel staan, als je wilt dat deze dynamisch wordt bijgewerkt.

De vraag is echter wanneer de errormessages aan de validationsummary worden doorgegeven. Wellicht dat het wijzigen van de errormessage van de validator niet wordt doorgegeven aan de summary per definitie.

Wat als je na het wijzigen van de errormessage de hele summary opnieuw instantieert?

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb een lege web applicatie gemaakt met de opgegeven aspx code en het event in de codebehind en dit werkt gewoon, waarschijnlijk zit het ergens in andere code die je niet gepost hebt.

Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 19:35
mOrPhie schreef op woensdag 13 april 2011 @ 13:11:
Je ValidationSummary moet in elk geval in de updatepanel staan, als je wilt dat deze dynamisch wordt bijgewerkt.

De vraag is echter wanneer de errormessages aan de validationsummary worden doorgegeven. Wellicht dat het wijzigen van de errormessage van de validator niet wordt doorgegeven aan de summary per definitie.

Wat als je na het wijzigen van de errormessage de hele summary opnieuw instantieert?
probleem verholpen. Het opnieuw instantieren was de oplossing :)
Waarom dit echter is?? Geen idee. Ik geef de lifecycle van de pagina de schuld.

Het maakte overigens niet uit of de validationsummary binnen of buiten het updatepanel stond.

Dank voor de tip!