-
14-08-2007, 13:43 #1
ASP.NET: Probleem met values van dropdownlist
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 bedanktno votes
-
-
14-08-2007, 13:57 #2Member
- Registered
- 08/11/03
- Location
- Antwerpen
- Posts
- 1,726
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 2/2
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"no votes
-
14-08-2007, 14:22 #3
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...
GreetzLeague league;
for (int i = 0; i < League.ListAll().Count; i++)
{
league = League.ListAll()[i] as League;
ListItem item = new ListItem(league.Name, league.LeagueId.ToString());
cboPlayed.Items.Add(item);
}
cboPlayed.DataBind();Last edited by RedNex; 14-08-2007 at 14:40. Reason: Oplossing gevonden
no votes
-
14-08-2007, 15:27 #4Member
- Registered
- 08/11/03
- Location
- Antwerpen
- Posts
- 1,726
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 2/2
Kan je het ook niet zo?
Dus gewoon alle leagues ophalen en in een array van het type league duwen. Vervolgens value en textfield zetten. Daarna binden.Code:League leagues() = League.GetAll(); cboPlayed.DataValueField = "LeagueId"; cboPlayed.DataTextField = "Name"; cboPlayed.DataSource = leagues; cboPlayed.DataBind();
no votes
-
14-08-2007, 16:00 #5Member
- Registered
- 25/11/03
- Location
- Antwerpen
- Posts
- 2,757
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/3
Idd, zo zou het ook moeten gaan en moet je geen lus doorlopen.
Free online cycling managerno votes
-
15-08-2007, 14:22 #6no votes

