在Master Page标签上添加Attribute.Add

时间:2010-07-30 14:06:38

标签: c# master-pages

我正在尝试使用以下技术将一些javascript放入我的母版页的body标签中:

<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()");
}

在本地计算机上运行时(使用Visual Studio开发服务器),一切都按预期工作,但是当我将其部署到生产IIS 6服务器时,运行页面时,属性不会添加到正文标记中。 / p>

关于导致这种情况的任何想法?

1 个答案:

答案 0 :(得分:0)

不知道你的代码无法正常工作的原因。 我建议使用window.onload事件代替body.onload

试试以下内容:

在Masterpage标记文件中,将其放在关闭正文标记

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

母版页代码隐藏文件

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

在您的内容页面

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