02. august 2007 - 14:29
Der er
16 kommentarer og 1 løsning
c#.net indsæt række i binded dropdownlist
Hej Eksperter, Jeg har en dropdownlist der henter data fra en database. Jeg vil imidlertid gerne indsætte en række øverst i dropdownlisten hvor der står "vælg" og som har værdien 0, Hvordan kan jeg gøre det i code behind? Når jeg har følgende: ... ... DataSet ds = new DataSet(); oda.Fill(ds); DDL_navn.DataTextField = "Navn"; DDL_navn.DataValueField = "Navn"; DDL_navn.DataSource = ds; DDL_navn.DataBind();
Annonceindlæg fra Infor
02. august 2007 - 14:40
#1
før alt andet bliver kaldt tilføjer du den dropdown listen dropDownList.Items.Add("None"); dropDownList.SelectedIndex = 0;
02. august 2007 - 15:09
#2
"Vælg" kommer ikke noget i dropdownlisten, har prøvet at sætte det ind her: OdbcConnection conn = new OdbcConnection(connstr); string sql = "select distinct navn from table1"; OdbcDataAdapter oda = new OdbcDataAdapter(sql, conn); DataSet ds = new DataSet(); oda.Fill(ds); DDL_navn.Items.Add("Vælg person"); DDL_navn.SelectedIndex = 0; DDL_navn.DataTextField = "Navn"; DDL_navn.DataValueField = "Navn"; DDL_navn.DataSource = ds; DDL_navn.DataBind(); Skal det sættes ind endnu tidligere?
02. august 2007 - 15:20
#3
jeg tror det er fordi du overskriver den med din .DataSource = ds; :) så du kan evt. tilføje den i din DB og sørge for at når du trækker resultater ud med din SQL at den kommer først!
02. august 2007 - 15:32
#4
Jeg kan ikke tilføje i db'en (har ikke skrive adgang) derfor ville jeg tilføje den i koden. Kan man tilføje en række til dataset'et så efter den er blevet genereret?
02. august 2007 - 15:50
#5
kan du vel godt.. du skal oprette DataColumn, DataRow og kalde metoden DDL_navn.Tables[0].Rows.Add(DIN ROW); sådan ca. da... har ikke noget udviklingsværktøj fremme til at præcisere det
02. august 2007 - 16:00
#6
det forstår jeg ikke lige. Har oprettet et dataset, kan man ikke tilføje til det i stedet for dropdownlisten?
02. august 2007 - 16:08
#7
sorry.. "EN OMMER" kan du vel godt.. du skal oprette DataColumn, DataRow og kalde metoden ds.Tables[0].Rows.Add(DIN ROW); sådan ca. da... har ikke noget udviklingsværktøj fremme til at præcisere det
02. august 2007 - 16:21
#8
ahh sorry, er ikke lige med på hvordan jeg skal oprette en DataColumn og Datarow og derefter bruge dem i ds.Tables[0].Rows.Add(DIN ROW);
02. august 2007 - 16:41
#9
kan som sagt ikke teste:) OdbcConnection conn = new OdbcConnection(connstr); string sql = "select distinct navn from table1"; OdbcDataAdapter oda = new OdbcDataAdapter(sql, conn); DataSet ds = new DataSet(); oda.Fill(ds); DataRow row = new DataRow(); row.ItemArray.SetValue("None",0); row.ItemArray.SetValue("0",1); da.Tables[0].Rows[0].SetParentRow(row); DDL_navn.SelectedIndex = 0; DDL_navn.DataTextField = "Navn"; DDL_navn.DataValueField = "Navn"; DDL_navn.DataSource = ds; DDL_navn.DataBind();
02. august 2007 - 16:58
#10
okay på den måde :) Jeg får en fejl på DataRow row = new DataRow(); : No overload for method 'DataRow' takes '0' arguments
02. august 2007 - 17:28
#11
jeg må se på det lidt senere hvor jeg kan se mulighederne:)
02. august 2007 - 17:52
#12
ok, jeg ser frem til dit svar, har prøvet lidt andre forskellige muligheder også, hvor jeg oprettede en Datatabel istedet for et dataset, men der kom ikke nogen ekstra række i dropdownlisten
02. august 2007 - 18:27
#13
DataSet ds = new DataSet(); oda.Fill(ds); DataRow row = ds.Tables[0].NewRow(); row.ItemArray.SetValue("None", 0); row.ItemArray.SetValue("0", 1); ds.Tables[0].Rows.InsertAt(row, 0); DDL_navn.SelectedIndex = 0; DDL_navn.DataTextField = "Navn"; DDL_navn.DataValueField = "Navn"; DDL_navn.DataSource = ds; DDL_navn.DataBind(); det er ikke testet... det eneste som kan være "forkert" er selve rækken.. om den har fået kolonnerne korrekt:)
03. august 2007 - 16:37
#14
DDL_navn.Items.Clear(); DDL_navn.Items.Add(New ListItem("Vælg", "0")); DDL_navn.AppendDataBoundItems = true;
03. august 2007 - 16:37
#15
og dette skal være inden du databinder
01. oktober 2008 - 08:17
#16
Neoman og kalp kan I ikke smide et svar, så får i begge point (undskyld den sene tilbage melding, men har været på barsel og ikke kigget herinde)
05. oktober 2008 - 19:22
#17
:)
Kurser inden for grundlæggende programmering