在用户控件中修改页眉

时间:2009-08-02 05:57:44

标签: asp.net user-controls http-headers

如何在嵌入式用户控件中修改页面的头部?我知道我可以在.aspx页面的head部分运行控件,但我有一个包含大量页面的现有站点,我不想更改。他们都有一个共同点是menubar.ascx。所以,我想我可以把代码放在那里修改包含页面的head元素,但没有骰子。我试图实现的代码如下所示,但Page.Header为null。

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim favicon As New HtmlLink
        favicon.Attributes.Add("REL", "SHORTCUT ICON")
        favicon.Attributes.Add("HREF", "images/bh_favicon.ico")
        Page.Header.Controls.Add(favicon)
    End Sub

我尝试将它放在PreRender和Render事件中但同样的事情。 Page.Parent.Page.Header也为null。有没有更好的方法来做我想做的事情?我希望将一个favicon添加到一组与默认的favicon不同的页面。基本上我在同一个代码库中有两个站点。

很好,这是我的第一篇文章。

TIA

3 个答案:

答案 0 :(得分:4)

您可能需要让您的Page Head在服务器上运行,以便usercontrol可以看到它。

例如:

<head runat="server">

如果你的所有网页上都没有这样做,我猜这有点失败。也许解决方案范围广泛的RegEx搜索/替换将是为了实现这一点。

答案 1 :(得分:1)

感谢您的回答。我知道我要求最少量的工作解决方案,但是,我想让代码易于管理。我想我要做的是构建一个母版页作为所有页面的模板(如@devstuff建议)。然后我将更改现有页面,大约50页,以使用母版页。这样,如果将来这样的东西弹出,我可以轻松地在一个地方改变一切。

谢谢你的帮助!

答案 2 :(得分:0)

如@ Program.X所述,您可能需要完整的搜索/替换。如果您打算这样做,您可能需要更进一步并使用母版页,但这实际上取决于您的时间限制以及要修改的页数。