在用户控件中公开ContentPlaceHolder

时间:2009-12-29 09:00:58

标签: asp.net validation

我正在实施一个Web应用程序,我遇到了以下问题:

我有一个用户控件,它有自己的样式和js文件,当我将用户控件添加到页面时,我尝试验证murkup我得到错误,因为用户控件的样式和js在正文中页面而不是头部。我想公开页面头,从我的Web应用程序用户控件将样式和js文件直接添加到页面头部。你有什么建议吗? 我还没有在网上得到任何好的解决方案

提前致谢

2 个答案:

答案 0 :(得分:3)

在用户控制标记中,您可以为占位符添加所需的所有css和js引用,如下所示:

<asp:PlaceHolder ID="phStyles" runat="server">
  <link type="text/css" rel="stylesheet" href="/App_Themes/Default/style/MyStyles.css" />
</asp:PlaceHolder>

在后面的用户控件代码中,您可以将占位符添加到页面的控件集合中:

    protected void Page_Load(object sender, EventArgs e)
    {
        Page.Header.Controls.Add(phStyles);
    }

唯一的条件是在页面上head标签必须有runat =“server”,如下所示:

<head runat="server">
</head>

答案 1 :(得分:1)

Scott Gu wrote有关此事的帖子。您可以尝试以下方法:

HtmlGenericControl script = new HtmlGenericControl("script");
script.Attributes.Add("type", "text/javascript");
script.Attributes.Add("src", "/somescript.js");
Page.Header.Controls.Add(script);