【问题标题】:Modify Page Head in User Control在用户控件中修改页眉
【发布时间】:2009-08-02 05:57:44
【问题描述】:

如何在嵌入的用户控件中修改页面的头部?我知道我可以在 .aspx 页面的头部运行控件,但我有一个现有站点,其中包含许多我不想更改的页面。它们的共同点之一是 menubar.ascx。所以,我想我可以把代码放在那里来修改包含页面的 head 元素,但没有骰子。我试图实现的代码看起来像这样,但是,Page.Header 为空。

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 处理 MyBase.Load 将图标设置为新的 HtmlLink favicon.Attributes.Add("REL", "SHORTCUT ICON") favicon.Attributes.Add("HREF", "images/bh_favicon.ico") Page.Header.Controls.Add(favicon) 结束子

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

请客气,这是我的第一篇文章。

TIA

【问题讨论】:

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


    【解决方案1】:

    您可能需要让您的页头在服务器上运行,以便用户控件可以看到它。

    例如:

    <head runat="server">
    

    如果您的所有页面上还没有这样做,我想这有点不合时宜。也许解决方案范围的正则表达式搜索/替换是为了实现这一点。

    【讨论】:

    • 如果客户不想为母版页解决方案预算时间,这将是我的备份解决方案。你是对的,使用正则表达式的简单查找/替换可以解决这个问题。谢谢!
    【解决方案2】:

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

    感谢您的帮助!

    【讨论】:

    • 我绝对建议对最终会超过 3 页的所有新网站使用母版页。以后省了很多麻烦,因为大多数内容页面并不真正关心诸如徽标、菜单等的框架。
    【解决方案3】:

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

    【讨论】:

    • 这将是一项艰巨的任务,但我喜欢这个概念。
    猜你喜欢
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 2021-09-19
    • 2014-05-15
    • 2010-10-27
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多