Avatar billede curriculum Nybegynder
11. april 2005 - 15:14 Der er 8 kommentarer

Udfylde dropdown i en anden user control

Jeg vil lave en funktion der opdaterer en dropdown i en anden user control. Hvordan laves dette ?
Jeg kunne tænke mig at lave en
Dim ddControl As DropDownList
siden udfylde den med relevante items og siden loade dem ind i dropdown'en fra den anden user control..

Jeg programmerer i vb.net
Avatar billede burningice Nybegynder
11. april 2005 - 20:28 #1
hvis begge dine controller ligger på samme side, kan du vandre frem og tilbage i control-hireakiret på denne måde:

Dim list As DropDownList = CType(Page.FindControl("idPåAndenControl").FindControl("idPåDropDownList), DropDownList)

list.DataSource = noget
list.DataBind()
Avatar billede curriculum Nybegynder
12. april 2005 - 09:49 #2
Begge mine controllere ligger på samme side, men i hver sin ascx fil.
Jeg får denne fejl:
System.NullReferenceException: Object reference not set to an instance of an object.

Lidt af relevant kode:
Dim list As DropDownList = CType(Page.FindControl("ddList").FindControl("list"), DropDownList)
objDR = objCmd.ExecuteReader()
list.DataSource = objDR
list.DataBind()

Funktion skal kunne opdatere items i ddList dropdown'en i den anden ascx...
Avatar billede curriculum Nybegynder
12. april 2005 - 11:02 #3
Jeg har løst problemet med en redirect... men denne redirect kører meget langsomt første gang jeg trykker på knappen og hvis application har stået stille i et stykke tid, hvor det ? eller skal jeg oprette et nyt spørgsmål til den ?
Avatar billede burningice Nybegynder
12. april 2005 - 17:07 #4
ddList, og list.. er det id'erne på dine kontroller du har sat ind på din aspx og ascx-side?

Ang. det med at den reagerer sløvt tyder på at din applikation lukker ned efter et stykke tid uden aktivitet og lige skal starte op igen.
Avatar billede curriculum Nybegynder
12. april 2005 - 18:56 #5
ddList er id'et på min dropdown, som jeg vil have udfyldt, der befinder sig en anden ascx fil, end den function der kalder ddList..
Avatar billede burningice Nybegynder
12. april 2005 - 19:02 #6
ja.. men hvad er id'et på den ascx-fil når den bliver sat ind på din aspx-side?
Avatar billede curriculum Nybegynder
14. april 2005 - 09:53 #7
id'et på dropdown'en: login1_ddItem (fra vis kilde)
Avatar billede burningice Nybegynder
14. april 2005 - 10:00 #8
ja, men det er ikke det id du skal bruge. Det er server-id'et, det du har brugt når du har oprettet objectet.

Eks.

<asp:dropdownlist id="hej" runat="server" />

Her er id'et hej

ang. din fejl (Page.FindControl("ddList").FindControl("list")) så ud fra hvad man normalt kalder sine kontroller er der jo også noget galt i rækkefølgen på at du finder dine objecter

først leder du efter ddList på hovedsiden. jeg går ud fra at ddList er din DropDownList. Når du har fundet den leder du efter list INDE i ddList. Burde det ikke være omvendt? Først leder du efter list (som er din usercontrol), og inde i den leder du efter ddList (som er din DropDownlList

det kan illustreres med et object-træ:

Page
  UserControl1
  UserControl2
    DropDownList

Hvis man står i UserControl1 og gerne vil hen til DropDownList skal du først en op, for at komme til Page, og derefter ned i UserControl2 og videre ned i DropDownList.

Op-Ned-Ned
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