Archief - ASP.NET: Probleem met values van dropdownlist

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.

RedNex

Legacy Member
Hey,

Ik ben al een hele tijd aan't zoeken achter een oplossing voor het volgende probleem. Ik ben een website aan't ontwikkelen in ASP.NET C# en wens nu dynamisch een dropdownlist op te vullen. Niet moeilijk op het eerste zicht, maar er doet zich iets vreemds voor.

Op de volgende screenshot kan je een item zien van de list waarmee ik mijn dropdownlist opvul. Merk op dat hier voor "Text" --> "Kadetten" staat, en voor "Value" --> "3".

Screenshot 1

Op de volgende screenshot laat ik de elementen zien die in mijn dropdownlist zitten op het moment dat ik deze wil aanspreken. Merk hier op dat de "Value" aangepast is...

Screenshot 2

Het was nu de bedoeling dat ik verder zou werken met de "3" die op screenshot 1 te zien was, maar deze waarde is dus blijkbaar aangepast, en ik heb geen enkel idee waarom, of wat daar de oorzaak van is. Iemand die dit wel weet?

Alvast bedankt

Obliv`

Legacy Member
Kan je voor uw dropdownlist geen waarde specifieren als het datavaluefield? Daar zet je gewoon de naam van de property van je data transfer object dat je als value wilt.

Dus waarschijnlijk: cboPlayed.DataValueField = "ID"

RedNex

Legacy Member
Ik heb hierbij alle mogelijkheden geprobeerd...

cboPlayed.DataValueField = "league.LeagueId"
cboPlayed.DataValueField = "LeagueId"
cboPlayed.DataValueField = "list[1]"
zelfs
cboPlayed.DataValueField = list[1].toString()

Met of zonder aanhalingstekens, ik vind geen combinatie die werkt...

EDIT:

Eindelijk een oplossing gevonden:

Nu bleek dus dat alles in een ListItemCollection duwen een probleem was. Als ik mijn ListItems rechtstreeks aan mijn combobox toevoeg, is het probleem opgelost. Blijkbaar past die ListItemCollection iets aan aan mijn value ofzo...

League league;
for (int i = 0; i < League.ListAll().Count; i++)
{
league = League.ListAll() as League;
ListItem item = new ListItem(league.Name, league.LeagueId.ToString());
cboPlayed.Items.Add(item);
}
cboPlayed.DataBind();


Greetz

Obliv`

Legacy Member
Kan je het ook niet zo?

Code:
League leagues() = League.GetAll();

cboPlayed.DataValueField = "LeagueId";
cboPlayed.DataTextField = "Name";
cboPlayed.DataSource = leagues;
cboPlayed.DataBind();

Dus gewoon alle leagues ophalen en in een array van het type league duwen. Vervolgens value en textfield zetten. Daarna binden.

Boddah

Legacy Member
Idd, zo zou het ook moeten gaan en moet je geen lus doorlopen.

RedNex

Legacy Member
Obliv` zei:
Kan je het ook niet zo?

Code:
League leagues() = League.GetAll();

cboPlayed.DataValueField = "LeagueId";
cboPlayed.DataTextField = "Name";
cboPlayed.DataSource = leagues;
cboPlayed.DataBind();

Dus gewoon alle leagues ophalen en in een array van het type league duwen. Vervolgens value en textfield zetten. Daarna binden.

Werkt ook perfect, en is een betere oplossing.

Bedankt!

RedNex
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