Avatar billede jriff Nybegynder
01. oktober 2005 - 17:19 Der er 4 kommentarer

Overføre parameter fra én usercontrol til en anden

Hej Alle!

Lad os sige at jeg har en side som ser således ud:

<table>
  <tr><td>UserControl1</td></tr>
  <tr><td>UserControl2</td></tr>
</table>

Jeg kunne godt tænke mig fra UserControl2 at kunne tilgå en label på UserControl1. Mere specifikt er UC1 en navigationsbjælke hvor der skal stå navnet på den side der bliver vist, og det vil jeg gerne have UC2 til at kunne sætte.

Kan det lade sig gøre?

- Jacob
Avatar billede snepnet Nybegynder
01. oktober 2005 - 20:40 #1
Hej jrff.

Der har været flere spørgsmål herude omkring det, og der er også anvist løsninger.

Som udgangspunkt vil jeg mene at det er en ret skidt løsning hvis du implementerer det som beskrevet.
Hvis én usercontrol er afhængig af en anden - kan du kun bruge dem begge to sammen, hvilket tyder på at du kun burde have haft én - eller slet ikke nogen.

Hvis der kan ske ting i én usercontrol, som skal påvirke forhold i andre kontroller vil rigtigste være at lade siden styre det.

1) Opret events på den usercontrol der kan have noget at fortælle i en given situation.

2) Sæt metoder/properties på de usercontrols du vil kunne påvirke udefra.

3) Sørg for at siden håndterer events fra 1) og kalder respektive metoder i 2)

Alternativt skal du indbygge noget lidt mere framework agtigt.

mvh
Avatar billede jriff Nybegynder
02. oktober 2005 - 13:40 #2
Hmm... I mit tilfælde synes jeg nu at det er ok at gøre det. Idéen er at jeg har en side som er bygget op af tre usercontrols: Top, content og bund. Jeg vil gerne have at der i top-bjælken kan stå noget á la: Hej og velkommen til xxx. Du er på siden [sidetittel]. (Det er selvfølgelig bare et eksempel :-)

Toppen ved ikke hvilket content der bliver vist, så det er op til den UC der bliver brugt som content at fortæle toppen det.

Det kan godt være at det ikke er den helt optimale måde at gøre det på, men jeg har brug for at vide hvordan man får dette specifikke tilfælde til at virke da det er sådan løsningen er lavet i sin tid. Helst noget kode hvis det kan lade sig gøre.
Avatar billede snepnet Nybegynder
03. oktober 2005 - 21:38 #3
lav en property på kontrollen som går direkte på f.eks. en headerlabel:

protected Label lblHeader; // denne label har du så indsat i designeren

public string HeaderText
{
  get{return lblHeader.Text;}
  set{lblHeader.Text = value;}
}

det du så skal løse - er hvordan du får fat i kontrollen, og æhh... der er egentlig ikke nogen god løsning på det.
du kan søge den igennem kontroltræet - eller du kan lave en property på din side som giver dig en nemmere adgang til sagerne.
men æhh... jeg vil stadig holde fast på at du skal prøve at gå efter den først foreslåede model.

du kan evt. skrive hvis der er nogle af punkterne du ikke ved hvordan du skal implementere - så skal du få noget kode.

mvh
Avatar billede snepnet Nybegynder
01. november 2005 - 21:06 #4
hvordan går det her?
mvh
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