Avatar billede innercitydk Nybegynder
21. april 2010 - 08:09 Der er 5 kommentarer og
1 løsning

UserControl property fra codebehind

Hej.

Hvis jeg initierer en usercontrol fra markup koden på en aspx side kan jeg sætte forskellige properties direkte i tagget f.eks:

<uc:InfoBox ID="InfoBoxActive" Content="activeprojects" runat="server" />

Her er content defineret i usercontrol codebehind således:

private string _Content;
    public string Content
    {
        get { return _Content; }
        set { _Content = value; }
    }

Mit spørgsmål er så hvordan jeg kan sætte værdien af Content når jeg initierer min usercontrol fra backenden, eks. således:

UserControl userCTRL = (UserControl)this.LoadControl("/usercontrols/InfoBox.ascx");
if (userCTRL != null)
    mainContentPh1.Controls.Add(userCTRL);

Jeg kan IKKE sætte den ved at skrive userCTRL.Content = ... hvilket undrer mig en del. Er der nogen der har været i samme situation og ved hvordan man løser dette problem?

Hilsen NH
Avatar billede bvli Praktikant
21. april 2010 - 10:38 #1
Du skal ikke caste den til UserControl men til din egen type. Altså:
InfoBox ib = this.Loadcontrol("/...") as InfoBox;
if (ib != null) {
  ib.Content = "activeprojects";
  mainContentPh1.Controls.Add(ib);
}
Avatar billede innercitydk Nybegynder
21. april 2010 - 16:26 #2
Hvordan er det muligt? Min codebehind er jo ikke klar over at usercontrollen existerer!
Avatar billede innercitydk Nybegynder
21. april 2010 - 17:10 #3
Jeg manglede bare en reference til kontrollen:

<%@ Reference VirtualPath="~/usercontrols/InfoBox/Infobox.ascx" %>

Så kunne jeg caste den til sin egen type og få fat i propertien. Smid en svar.
Avatar billede bvli Praktikant
21. april 2010 - 17:16 #4
Svar :)
Avatar billede innercitydk Nybegynder
21. april 2010 - 19:58 #5
Er det ikke bare en kommentar du skriver kan ikke acceptere noget?!
Avatar billede bvli Praktikant
21. april 2010 - 21:41 #6
sorry
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

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