Avatar billede pablopablo Nybegynder
23. juli 2006 - 20:13 Der er 7 kommentarer og
1 løsning

Brug af ImageUrl

Hey...

jeg har et billede i min masterpage jeg gerne vil have udskiftet til et forskelligt billede for hver content page...hvordan ville i vælge at gøre dette?

Har set der findes en ad-rotater...men har ikke prøvet at bruge den før...er den at foretrække?

Jeg har prøvet at skive følgende kode i load metoden på en content page...men uden held...billedet vises ikke...?-(


protected void Page_Load(object sender, EventArgs e)
    {
        Image im = (Image)Master.FindControl("Image1");
        im.ImageUrl = Server.UrlEncode("~/Images/billede1.jpg");
    }

Hvordan bør dette løses...??

Mvh. PabloPablo
Avatar billede snepnet Nybegynder
23. juli 2006 - 20:16 #1
Sæt ImageUrl på billedet som en property på din masterpage:

public string HeaderImage
{
  get{return Image1.ImageUrl;}
  set{Image1.ImageUrl = value;}
}

Så kan du skrive til den fra din contentpage - enten ved at typecaste this.Master til din specifikke mastertype, eller ved at angive et MasterType directive i din aspx på contentsiden.

Mvh
Avatar billede pablopablo Nybegynder
23. juli 2006 - 20:33 #2
property'en er jeg med på...men kan de vise eks. på i kode hvordan jeg bruger den...er total newbie i asp...men kun til winforms...:) og kan ikke lige få det til at spille...
Avatar billede pablopablo Nybegynder
23. juli 2006 - 20:34 #3
kender kun til winforms...skulle der stå...
Avatar billede snepnet Nybegynder
23. juli 2006 - 20:38 #4
ok ... hvis du på din master har bemeldte property, så kan du nå den sådan her "direkte":
(Hvis vi antager at din master hedde SomeMaster)

// på din contentpage:
((SomeMaster)this.Master).HeaderImage = "...";

Den anden mulighed er, at du deklarativt kan forklare kompileren hvilken type din masterpage er (for en given contentpage).
Det kan du gøre i din aspx-fil sådan her:

<%@ MasterType VirtualPath="samme path som du har stående i masterpagefil i dit pagedirective" %>

Så reflekteres typen direkte (også af intellisense) så du kan nøjes med at skrive:
this.Master.HeaderImage = "..";

Du kan også gennemtvinge typen for alle sider i web.config.

Mvh
Avatar billede pablopablo Nybegynder
23. juli 2006 - 20:44 #5
ooh, okay - i see...nice :)

Nu gør du mig jo nysgerrig...hvordan vil det se ud i web.config'en? det ville faktisk være det smarteste i mit tilfælde, idet at jeg blot har én master page...men man kan måske også godt angive hvilke contentpages som skal kende en given masterpage, hvis man nu fx. har flere masterpages...?
Avatar billede snepnet Nybegynder
24. juli 2006 - 07:42 #6
Du kan angive sådan en her under <system.web> i web.config.
<pages masterPageFile="..." />
Så er der fælles master, men MasterType kan desværre ikke angives i web.config.
Hvis du har flere masterpages, så må du angive den for hver content side, og angive type n for de sider hvor du ønsker at tilgå properties på din master.
Mvh
Avatar billede pablopablo Nybegynder
24. juli 2006 - 15:23 #7
okay...du skal have tak for det, læg du blot et svar...
Avatar billede snepnet Nybegynder
24. juli 2006 - 20:28 #8
Kommer her :o)
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