Archief - ASP.Net\C# List<> Probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Adelbert

Legacy Member
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:
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);
}
"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:
private List<RadioButtonList> vragen = new List<RadioButtonList>();

nu wanneer ik achteraf
Code:
vragen.Count
opvraag is die lijst leeg, terwijl ik reeds de pagina's met de dynamisch toegevoegde radiobuttonlists gezien heb:confused:

:help:

Adelbert

Legacy Member
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?

Cycloon

Legacy Member
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.

Adelbert

Legacy Member
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

Cycloon

Legacy Member
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?

Adelbert zei:
Balen dat die referenties niet meer kloppen

Stel je voor dat die allemaal in het geheugen blijven zitten elke keer een pagina geladen wordt, je RAM geheugen zou vlug vol zitten.

Adelbert

Legacy Member
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 :<

Obliv`

Legacy Member
Adelbert zei:
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 :<

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.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan