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 Context&
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.