Avatar billede torotune Nybegynder
18. maj 2006 - 23:11 Der er 7 kommentarer og
1 løsning

GridView - tilgå DropDownList

Hejsa,

Hvis jeg har et GridView med en templateColumn hvori der er en dropdownlist. Jeg forsøger at tilgå kun denne og lave et event på den - ddl_SelectedIndexChanged.

Denne skal så udføre en sub. Jeg har prøvet at gøre det ved  at sige:

For Each row As GridViewRow In gvForm.Rows

  Dim Drp As DropDownList = _
    CType(row.FindControl("MinDrp"), DropDownList)

  'og så definere hvad der skal ske for min minDrp når der sker et postback..

Next

Det virker også fint, bortset fra at eventet bliver udført for hver dropdownlist i gridView'et - jeg vil kun have det skal ske for den som jeg rejser eventet fra og dens row. Er der nogen der ved hvad det så hedder?
Avatar billede snepnet Nybegynder
18. maj 2006 - 23:40 #1
Hvis du abbonnerer på listens changed-event, skulle det kun blive kørt én gang, men i den kode du har hvis løber du jo alle dine rækker igennem.... Hvad vil du bruge det til?
Mvh
Avatar billede torotune Nybegynder
18. maj 2006 - 23:59 #2
Hej,

Jeg vil gerne, udfra hvad der bliver valgt i min drpDown, køre en metode der henter et udtræk fra min database, som bestemmer hvad der skal stå i en label i den  tilstødende kolonne i mit GridView.

Altså, hvis jeg i min kolonne med med min dropdown vælger "1", så fyrer den eventet
"ddl_SelectedIndexChanged." Heri er der så en connection til min database og den henter så eks.:

  "SELECT ID, Navn FROM Bruger WHERE ID = " & Mindrp.SelectedValue & ";"

Og så gør jeg så:

Dim BrugerLabel As Label = CType(row.FindControl("lblBruger"), Label)
LblBruger.Text = 'hvad der kommer ud af udtrækket

Det kunne jeg med den anden der hvor jeg løber dem alle igennem, men vil kun have det til at ske for den row hvori jeg vælger noget i dropdownlisten.
Avatar billede snepnet Nybegynder
19. maj 2006 - 00:35 #3
du kan få fat i dit DataRow ved property'en .NamingContainer på din dropdownlist, og din dropdownlist er sender-parameteren i din handler.
Så:
Cast sender til en DropDownList (eller blot Control) - og typecast .NamingContainer til et DataGridItem, så kan du tilgå det du vil på det item.
Mvh
Avatar billede torotune Nybegynder
19. maj 2006 - 09:52 #4
Okay, jeg forstår det nogenlunde, men er ikke helt sikker på hvordan jeg skal stille det op. Har du et lille eksempel eller måske et link til et lignende? :-)
Avatar billede snepnet Nybegynder
19. maj 2006 - 18:48 #5
i din eventhandler:


Dim liste As DropDownList = CType(sender, DropDownList)
Dim item As DataGridItem = CType(liste.NamingContainer, DataGridItem)

og så kan du så tilgå dit item, og få få fat i de kontroller du skal bruge på det.

Mvh
Avatar billede torotune Nybegynder
21. maj 2006 - 12:19 #6
Ah STORT!

Det virker jo perfekt lige med det samme! :-)
- Meget simpel måde at tilgå sine controls på, og ja
ingen grund til at løbe alle rækker igennem.

Smid svar!
Avatar billede snepnet Nybegynder
21. maj 2006 - 12:29 #7
Kommer her :o)
Mvh
Avatar billede torotune Nybegynder
21. maj 2006 - 12:41 #8
Mange 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