2010-07-30 4 views
2

je tente de mettre un peu de javascript dans la balise body de mon masterpage en utilisant la techinique suivante:Attribute.Add sur MasterPage <body> tag

<body id="pgBody" runat="server"> 

//Property to get the body tage in MasterPage.cs 
public HtmlGenericControl BodyTag 
{ 
    get 
    { 
     return this.pgBody; 
    } 
} 


//In my content page PageLoad() 
MasterPage mstrPg = this.Master as MasterPage; 
if (mstrPg != null) 
{ 
    mstrPg.BodyTag.Attributes.Add("onload", "LoadMap()"); 
    mstrPg.BodyTag.Attributes.Add("onunload", "UnloadMap()"); 
} 

Tout fonctionne comme prévu lors de l'exécution sur ma machine locale (en utilisant les Visual Studio Development Server), mais lorsque je le déploie sur un serveur IIS 6 de production, les attributs ne sont pas ajoutés à la balise body lors de l'exécution de la page.

Des idées sur ce qui causerait cela?

+0

Ne voyez rien de mal. Il devrait être ajouté. Avez-vous une erreur? – Hoque

Répondre

0

Je ne sais pas exactement pourquoi votre code ne fonctionne pas. et une chose que je recommanderais d'utiliser window.onload événement au lieu de body.onload.

juste essayer ce qui suit:

Dans le fichier de balisage Masterpage, le mettre avant la fermeture de balise body

<asp:PlaceHolder runat="server" ID="ScriptsPlaceHolder" Visible="false"> 
    <script type="text/javascript"> 
     window.onload = function() { LoadMap(); }; 
     window.onunload = function() { UnloadMap(); }; 
    </script> 
</asp:PlaceHolder> 

Masterpage fichier codebehind

public PlaceHolder ScriptsPlaceHolderControl 
{ 
    get { return this.ScriptsPlaceHolder; } 
} 

Dans votre page de contenu

SiteMaster mstrPg = this.Master as SiteMaster; 
if (mstrPg != null) 
{ 
    mstrPg.ScriptsPlaceHolderControl.Visible = true; 
}