Thread: ASP.Net\C# List<> Probleem
-
02-01-2009, 16:05 #1Approved 9-lifer
- Registered
- 19/09/06
- Location
- Brugge
- Posts
- 1,417
- iTrader
- 12 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/10
ASP.Net\C# List<> Probleem
Beste 9lifers,
ik probeer op een ASP.Net website dynamisch Radiobuttonlists toe te voegen, dit werkt perfect, en komen ook op de website er effectief op. Die dynamisch toegevoegde Radiobuttonlists probeer ik bij te houden in een List<RadioButtonList>, maar daar gaat het mis. Er zit gewoon niets in mijn list achteraf en ik snap niet waarom.
Code om radiobuttonlist aan te maken:
"Vraag" is een klasse die ik zelf geschreven heb, met wat standaard crap in, "vraaglijst" is een lijst met alle vragen die ik eerder uit een XML bestand gelezen heb, en "vragen" wordt bovenaan mijn C# pagina gedeclareerd en geinitialiseerd:Code:foreach (Vraag v in vraaglijst) { TableCell keuze = new TableCell(); RadioButtonList listkeuze = new RadioButtonList(); listkeuze.Items.Add(new ListItem("Ja", "0")); listkeuze.Items.Add(new ListItem("Nee", "1")); vragen.Add(listkeuze); keuze.Controls.Add(listkeuze); NieuweRij.Cells.Add(keuze); }
nu wanneer ik achterafCode:private List<RadioButtonList> vragen = new List<RadioButtonList>();
opvraag is die lijst leeg, terwijl ik reeds de pagina's met de dynamisch toegevoegde radiobuttonlists gezien hebCode:vragen.Count

->
->
no votes
Reply With Quote
-
-
02-01-2009, 17:47 #2Approved 9-lifer
- Registered
- 19/09/06
- Location
- Brugge
- Posts
- 1,417
- iTrader
- 12 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/10
Nieuw probleem, maar oud probleem opgelost.
ik heb de reden gevonden waarom de lijst telkens leeg was, ik vroeg die Lijst op in een andere pagina, en data wordt niet bewaard in uw CodeBehind file, ik heb dit opgelost door mijn lijst telkens in de cache op te slaan.
Nu zit ik wel met volgend probleem, mijn radiobuttonlist wordt dus bijgehouden in een List<Radiobuttonlist> in de cache, dus telkens er een radiobuttonlist aan de website wordt toegevoegd, gebeurt dit ook in de list in de cache.
als ik nu op een later moment probeer de .SelectedIndex op te vragen van die radiobuttonlists in mijn cache, zegt ie telkens dat de selectedindex op "-1" staat (wat volgens mij betekend dat er niets aangeduid is, correct?), zelf na dat ik op die website zelf iets in een/meerdere/alle radiobuttonlists iets aanduid
ik veronderstel dat die radiobuttonlist objecten in mijn List toch nog naar het Object verwijzen die op de webpagina komt?
->
->
no votes
Reply With Quote
-
02-01-2009, 19:07 #3Approved 9liver
- Registered
- 18/01/04
- Location
- Melle
- Posts
- 10,535
- iTrader
- 56 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/102
Waarschijnlijk worden er idd nieuwe radiobuttonlist objecten aangemaakt wanneer de pagina wordt "teruggezonden" naar je server. Je manier van werken is sowieso af te raden.
“In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
PSN: Cycloon - Final Fantasy XIV: A realm reborn characterno votes
Reply With Quote
-
02-01-2009, 19:46 #4Approved 9-lifer
- Registered
- 19/09/06
- Location
- Brugge
- Posts
- 1,417
- iTrader
- 12 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/10
enige suggesties van hoe het wel te doen dan? probleem is dat de aantal radiobuttonlists dat ik nodig heb niet vastligt, hangt af van de hoeveelheid vragen in een XML file.
Balen dat die referenties niet meer kloppen
->
->
no votes
Reply With Quote
-
02-01-2009, 20:52 #5Approved 9liver
- Registered
- 18/01/04
- Location
- Melle
- Posts
- 10,535
- iTrader
- 56 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/102
Vermits je de pagina kan opbouwen aan de hand van die XML file weet je ook bij het ontvangen aan de hand van je XML file hoeveel lists je zal hebben toch?
Stel je voor dat die allemaal in het geheugen blijven zitten elke keer een pagina geladen wordt, je RAM geheugen zou vlug vol zitten.“In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
PSN: Cycloon - Final Fantasy XIV: A realm reborn characterno votes
Reply With Quote
-
02-01-2009, 20:54 #6Approved 9liver
- Registered
- 25/12/02
- Location
- Brugge
- Posts
- 3,975
- iTrader
- 17 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/49
al geprobeerd met if(!this.isPostBack) ?
no votes
Reply With Quote
-
03-01-2009, 01:16 #7Approved 9-lifer
- Registered
- 19/09/06
- Location
- Brugge
- Posts
- 1,417
- iTrader
- 12 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/10
ik clear me cache elke keer, uiteindelijk is dat de verantwoordelijkheid van de programmeur niet? zorgen dan het RAM niet volloopt?
en isPostBack verranderd niets aan het feit dat ik de referenties naar mijn dynamische objecten verlies :<
->
->
no votes
Reply With Quote
-
03-01-2009, 13:03 #8Member
- Registered
- 08/11/03
- Location
- Antwerpen
- Posts
- 1,726
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 2/2
Natuurlijk is het uw verantwoordelijkheid WEL hoe jouw applicatie met geheugen omgaat.
Je gebruikt best de viewstate om je lijst van radiobuttonlists bij te houden. Op die manier wordt de lijst geserialised naar de response die naar de gebruiker wordt gestuurd. De response zal dan wel enkele KB groter zijn, maar dit is te verwaarlozen als je geen zotte dingen doet. Als je de lijst dan terug uit de viewstate haalt, wordt hij terug gedeserialised.
Als je de viewstate niet kent: de werken is het zelfde als de session, enkel is de viewstate pagina-afhankelijk.no votes
Reply With Quote

