[ASP.NET/C#] Webcontrol behoudt waardes niet na postback

Pagina: 1
Acties:

  • jopie1983
  • Registratie: November 2003
  • Laatst online: 25-02-2024
Ik heb een aspx pagina met een zelfgemaakte webcontrol in. De control haalt een vraag met bijhoorden antwoorden op uit een database, en vervolgens worden er controls aangemaakt die de vraag en antwoorden op een pagina zet, met mogelijkheid voor de bezoeker om een antwoord te selecteren.
Voor 1 soort vraag maak ik allemaal aparte radiobuttons aan en deze pleur ik vervolgens in een tabel. Ik moet deze allemaal apart aanmaken, omdat er bij 1 radiobutton een tekstveld hoort, en deze kan ik niet toevoegen aan een RadioButtonList. Het vreemde is nu dat hij van deze radiobuttons de waardes niet onthoudt na een postback. Dus als de gebruiker zijn waardes submit, is er geen enkele radiobutton geselecteerd. Ik heb in dezelfde control nog andere soorten vragen zitten, deze werken met radiobuttonlist, checkboxlist en textboxes. Van deze controls onthoudt die wel de vragen na een postback. De controls worden op dit moment in de Page_Init aangemaakt, ik heb ze ook al proberen aan te maken in de Page_Load, maar ook dit heeft geen effect. Mijn control implementeert momenteel ook INamingContainer, dit zou een mogelijke oplossing zijn, maar ook dit werkt niet. Ik heb ook al geprobeerd de EnableViewState, expliciet op true te zetten, maar dit helpt niet. Verder heb ik ook de id's van de controls al nagekeken voor en na de postback, en deze zijn gewoon hetzelfde. Het is dus allemaal maar heel vreemd. Hier is de code waar de radiobuttons worden aangemaakt.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
radioList = new ArrayList();
string radioGroup = question.Id.ToString();
for (int i = 0; i < answers.Length; i++)
{
   RadioButton button = new RadioButton();
   radioList.Add(button);
   button.Text = answers[i];
   button.GroupName = radioGroup;
   TableCell buttonCell = new TableCell();
   buttonCell.Controls.Add(button);
   TableRow answerRow = new TableRow();
   answerRow.Cells.Add(buttonCell);
   questionTable.Rows.Add(answerRow);
}

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:45

gorgi_19

Kruimeltjes zijn weer op :9

Heb je ook je Control tree al eens vergeleken (voor en na een postback) als je met trace.axd deze opvraagt?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Check je wel op Page.Postback? Anders worden gewoon iedere keer de controls opnieuw gemaakt.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • jopie1983
  • Registratie: November 2003
  • Laatst online: 25-02-2024
Ik heb net de Control tree vergeleken, en de controls zijn gewoon identiek. Ik hou nu geen rekening met PostBack, dus de controls worden iedere keer opnieuw aangemaakt. Dit is ook niet waar het probleem ligt denk ik. Andere vragen werken wel, en die controls worden ook iedere keer opnieuw aangemaakt. Het zijn enkel deze radiobuttons die hun state niet onthouden na de postback.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:45

gorgi_19

Kruimeltjes zijn weer op :9

jopie1983 schreef op vrijdag 28 januari 2005 @ 10:59:
Ik heb net de Control tree vergeleken, en de controls zijn gewoon identiek. Ik hou nu geen rekening met PostBack, dus de controls worden iedere keer opnieuw aangemaakt. Dit is ook niet waar het probleem ligt denk ik. Andere vragen werken wel, en die controls worden ook iedere keer opnieuw aangemaakt. Het zijn enkel deze radiobuttons die hun state niet onthouden na de postback.
Visual Basic .NET:
1
2
3
4
5
        Private Sub PageLoad(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

            If Page.IsPostback Then Exit Sub

        End Sub

Indien je de postback niet afvangt, wordt alles iedere keer opnieuw gebind en overschrijf je dus steeds je 'ingevulde' waarden :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • jopie1983
  • Registratie: November 2003
  • Laatst online: 25-02-2024
Het probleem daarmee is, is dat men control dan niet geinitialiseerd is als ik de waardes opvraag. Maar het vage van het hele gebeuren is, dat als ik een RadioButtonList gebruik, ipv aparte RadioButtons, dat alles dan wel werkt zoals het hoort. :| En ik snap echt niet waarom 5 aparte radiobuttons het niet doen, terwijl een textvak, of een radiobuttonlist het wel gewoon doen. :?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:45

gorgi_19

Kruimeltjes zijn weer op :9

jopie1983 schreef op vrijdag 28 januari 2005 @ 11:15:
Het probleem daarmee is, is dat men control dan niet geinitialiseerd is als ik de waardes opvraag.
:?

Init komt toch voor load, en je maakt je controls toch aan in init?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • sirono
  • Registratie: November 2002
  • Laatst online: 07-08-2025
omdat een radiobuttonlist een apart object is wat de buttons bevat.
en deze buttons dus niet opnieuw aangemaakt worden ofzo?

maar je moet idd wel ff if(page.postback) in je page load zetten...

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
Check deze link anders. Misschien heb je er wat aan.

stp - PSN ID: stp_4


  • jopie1983
  • Registratie: November 2003
  • Laatst online: 25-02-2024
Het blijkt na vier uur prutsen dat je de id van de radiobuttons expliciet moet zetten. |:(
Pagina: 1