13. april 2005 - 22:57
Der er
12 kommentarer og 1 løsning
Problemer med databind med dropdownlist
Jeg har problemer med at lave dropdownlist. Når jeg bruger nedenstående kode.... foreach(CategoryData c in CategoryArray) { dr = dt.NewRow(); dr[0] = c.Name.ToString(); dr[1] = c.Id.ToString(); dt.Rows.Add(dr); } Får jeg en dropdownlist hvori der står... <option value="System.Data.DataRowView">System.Data.DataRowView</option> Hvad gør jeg galt? Hvis jeg binder til et datagrid så får jeg ingen problemer, og data er korrekt, men det skal jo en ien dropdownlist.
Annonceindlæg fra Barco
Er jeres mødelokaler sikre nok?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
13. april 2005 - 23:04
#1
har du husket at sætte ValueField og TextField på din DrowDownList??
13. april 2005 - 23:12
#2
Her er resten af min kode... DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("Name", typeof(String))); dt.Columns.Add(new DataColumn("Id", typeof(String))); foreach(CategoryData c in CategoryArray) { dr = dt.NewRow(); dr[0] = c.Name.ToString(); dr[1] = c.Id.ToString(); dt.Rows.Add(dr); } categoryDrpDwnList.DataSource = dt; categoryDrpDwnList.DataBind(); Kan du give et eksempel. Jeg har ellers fulgt et eksempel fra nettet.
13. april 2005 - 23:15
#3
Hovsa... det er vel ikke dt.Columns.Add jeg skal bruge men dt.Rows.Add
13. april 2005 - 23:15
#4
categoryDrpDwnList.DataValueField = "Id"; categoryDrpDwnList.DataTextField = "Name";
13. april 2005 - 23:16
#5
men.. hvorfor smide dine data over i en DataTable først? hvorfor ikke binde dit array direkte til dropdownlisten? categoryDrpDwnList.DataValueField = "Id"; categoryDrpDwnList.DataTextField = "Name"; categoryDrpDwnList.DataSource = CategoryArray; categoryDrpDwnList.DataBind();
13. april 2005 - 23:19
#6
Jeg tænkte nok at jeg havde et ligegyldigt mellemled, jeg prøver lige din versio...
13. april 2005 - 23:20
#7
Sådan nu virker det. Smid bare et svar ind...så du kan få points.
13. april 2005 - 23:23
#8
Hvis jeg nu vil have en 'default' tekst ind fx - vælg - hvordan skriver jeg skrive det ???
14. april 2005 - 07:43
#9
en default text? hvad mener du?
14. april 2005 - 10:21
#10
jeg mener en text der ligger øverst som option, hvor der fx. står - VÆLG FARVE -.
14. april 2005 - 10:33
#11
:).. ja, så skal du enten tilføje denne fiktive option til din CategoryArray eller droppe databinding og manuelt tilføje alle dine items til dropdownlisten: 1) CategoryArray.AddAt(0, new CategoryData("- Vælg Farve -", "")); categoryDrpDwnList.DataValueField = "Id"; categoryDrpDwnList.DataTextField = "Name"; categoryDrpDwnList.DataSource = CategoryArray; categoryDrpDwnList.DataBind(); 2) categoryDrpDwnList.Items.Add(new ListItem("- Vælg Farve -")); foreach (CategoryData c in CategoryArray) { categoryDrpDwnList.Items.Add(new ListItem(c.Name, c.Id)); }
14. april 2005 - 13:48
#12
2) Virkede kun ved at tilføje .ToString() på elementerne categoryDrpDwnList.Items.Add(new ListItem("- Vælg Farve -")); foreach (CategoryData c in CategoryArray) { categoryDrpDwnList.Items.Add(new ListItem(c.Name.ToString(), c.Id.ToString())); } Tak for hjælpen... 2) categoryDrpDwnList.Items.Add(new ListItem("- Vælg Farve -")); foreach (CategoryData c in CategoryArray) { categoryDrpDwnList.Items.Add(new ListItem(c.Name, c.Id)); }
14. april 2005 - 14:12
#13
ja, det er rigtigt at begge argumenter skal være af typen string, og jeg kunne af gode grunde ikke vide hvilke typer CategoryData.Name og .Id havde.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.