Avatar billede superdude Nybegynder
15. januar 2006 - 22:26 Der er 5 kommentarer og
1 løsning

Tilføje head element til Content page

Kan man tilføje et child node til et html head tag (eksempelvis script, meta, link o.s.v.) til en content page.

Hvis vi antager at head tagget er defineret i masterpagen, kan jeg så tilføje et meta/link/script element der kun skal vises på én af content siderne?

Man kan jo eksempelvis styre title tag'et for hver contentside i @Page direktivet...
Avatar billede snepnet Nybegynder
15. januar 2006 - 22:32 #1
det kan du godt... på en alm. side har du diverse muligheder på
this.Header

og hvis du benytter en masterpage - kan du lave en public property der mapper til det tag, sådan her:

public HtmlHead PageHeader
{
  get{return this.Header;}
}

hvis du så vil have adgang til den fra dine contentsider, kan du enten typecaste din master:

((MyMasterType)this.Master).PageHeader.<hvaddunuvil>

eller også kan du angive et mastertypedirective på din form:

<%@ MasterType VirtualPath="*" %>

* = den samme virtuelle sti du har angivet til din masterpage i dit pagedirective.

hvis du gør det sidste, får du typestærk adgang til din master i din codebehind, således at du ikke behøver at lave bemeldte typecast, men blot kan skrive

this.Master.PageHeader.<hvaddunuvil>

mvh
Avatar billede superdude Nybegynder
15. januar 2006 - 22:37 #2
Tak igen. Du kender proceduren... smid et svar ;-)
Avatar billede snepnet Nybegynder
15. januar 2006 - 22:38 #3
var så lidt :o)
mvh
Avatar billede superdude Nybegynder
15. januar 2006 - 22:39 #4
Men det vil så sige at det skal gøres programatisk. Der er ikke en deklarativ måde som eksempelvis Title tagget? Blot nysgerrig...
Avatar billede snepnet Nybegynder
16. januar 2006 - 08:17 #5
ikke på din contentpage.... men på sider hvor du har en <head> kan du godt - men du kan bruge ovenstående til at offentliggøre andre egenskaber for den færdige side for contentpages.
mvh
Avatar billede snepnet Nybegynder
16. januar 2006 - 08:27 #6
Sådan noget her kan du f.eks. fint lave (bare et eksempel):

// i DefaultMaster.master
<head runat="server">
    <title>Untitled Page</title>
    <style type="text/css">
    <%= BodyStyle %>
    </style> 
</head>

// codebehind til Default.Master
private string _bodyStyle = "body {color:red;background-color:yellow;}";
public string BodyStyle
{
    get { return _bodyStyle; }
    set { _bodyStyle = value; }
}

// og i page_load på en contentpage
protected void Page_Load(object sender, EventArgs e)
{
    ((DefaultMaster)this.Master).BodyStyle = "body {color:yellow;background-color:red;}";
}

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