Avatar billede runen Nybegynder
13. august 2002 - 10:42 Der er 5 kommentarer og
1 løsning

Tilføjelser i en dropdownlist...

Hejsa.

Jeg har en dropdownlist hvor jeg tilføjer 2 felter, udover det som jeg trækker fra basen.

- vælg union
- alle unioner

Disse felter optræder nederst i min drop-downliste, hvordan kan jeg ændre dette således at de optræder øverst?

Her kommer et udsnit af koden:

    'Fill the Union dropdown
    sqlAdaptUnion = New SqlDataAdapter("up_get_unionToDropdown", sqlConn)
    sqlAdaptUnion.SelectCommand.CommandType = CommandType.StoredProcedure

    dtUnion = New DataTable()

    Me.DropDownUnion.DataValueField = "Union_id"
    Me.DropDownUnion.DataTextField = "Union_shortning_vc"
    Me.DropDownUnion.DataSource = dtUnion
    sqlAdaptUnion.Fill(dtUnion)

    workRow = dtUnion.NewRow
    workRow(0) = -1
    workRow(1) = "Vælg union"
    dtUnion.Rows.Add(workRow)

    workRow = dtUnion.NewRow
    workRow(0) = 0
    workRow(1) = "Alle unioner"
    dtUnion.Rows.Add(workRow)

    Me.DropDownUnion.DataBind()
    Me.DropDownUnion.Items.FindByText("Vælg union").Selected = True
Avatar billede cbp Nybegynder
13. august 2002 - 10:59 #1
Sådan cirka:

    'Fill the Union dropdown
    sqlAdaptUnion = New SqlDataAdapter("up_get_unionToDropdown", sqlConn)
    sqlAdaptUnion.SelectCommand.CommandType = CommandType.StoredProcedure

    dtUnion = New DataTable()

    Me.DropDownUnion.DataValueField = "Union_id"
    Me.DropDownUnion.DataTextField = "Union_shortning_vc"
    Me.DropDownUnion.DataSource = dtUnion
    sqlAdaptUnion.Fill(dtUnion)

    Me.DropDownUnion.DataBind()

    DropDownUnion.Insert(0,  New ListItem("Vælg union", "0"))
    DropDownUnion.Insert(1,  New ListItem("Alle unioner", "0"))

Jeg har ikke testet det men det er i hvert fald nemmest at indsætte et nyt listitem i dropdownlisten fremfor at rode med indsættelsen i datatable. På denne måde skulle en datareader også kunne klare arbejdet i stedet og derved hente lidt performance.
Avatar billede runen Nybegynder
13. august 2002 - 11:57 #2
Ikke helt rigtig...

Der er ingen insert metode på en dropdownlist, men istedet er der en add metode.

Men... jeg har stadigvæk problemer med at sortere listen, således at værdierne som jeg manuelt indsætter, fremkommer øverst i dropdownlisten.

Jeg har pointen med at lade være med at indsætte i datatablen og istedet for indsætte i dropdownlisten for at hente performance. Jeg har gjort følgende:

    'Fill the Union dropdown
    sqlAdaptUnion = New SqlDataAdapter("up_get_unionToDropdown", sqlConn)
    sqlAdaptUnion.SelectCommand.CommandType = CommandType.StoredProcedure

    dtUnion = New DataTable()

    Me.DropDownUnion.DataValueField = "Union_id"
    Me.DropDownUnion.DataTextField = "Union_shortning_vc"
    Me.DropDownUnion.DataSource = dtUnion
    sqlAdaptUnion.Fill(dtUnion)
    sqlConn.Close()

    Me.DropDownUnion.DataBind()
    Me.DropDownUnion.Items.Add(New ListItem("Vælg union", "-1"))
    Me.DropDownUnion.Items.Add(New ListItem("Alle unioner", "0"))
    Me.DropDownUnion.Items.FindByText("Vælg union").Selected = True
Avatar billede cbp Nybegynder
13. august 2002 - 12:12 #3
Det er nu helt rigtigt. På en dropdownlist er der BÅDE en add (indsætter som sidste element i dropdownlisten) og en insert (hvor man selv kan sætte indeks).
Avatar billede odegaard Nybegynder
13. august 2002 - 12:16 #4
Hvad med at tilføje til din datasource istedet? Denne kan du jo sortere som du lyster.
Avatar billede runen Nybegynder
13. august 2002 - 12:25 #5
He he, du havde næsten ret... (du manglede lige et "items" i insert linien)

Me.DropDownUnion.Items.Insert(0, New ListItem("Vælg union", "-1"))

Anyway 1000 tak for hjælpen :o)
Avatar billede cbp Nybegynder
13. august 2002 - 12:27 #6
Ok, den var lige smuttet :-) Tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester