2009-08-02 6 views
3

埋め込みユーザーコントロール内からページの先頭部分を変更するにはどうすればよいですか?私はコントロールが.aspxページの頭の部分で実行することができますが、私は変更したくない多数のページを持つ既存のサイトを持っています。彼らが共通して持つことの一つは、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 

プレレンダリングとレンダリングのイベントに同じことを入れてみました。 Page.Parent.Page.Headerもnullです。私がしたいことをするためのより良い方法はありますか?私は、デフォルトのファビコンとは異なるページグループにfaviconを追加したいと思っています。基本的に同じコードベースに2つのサイトがあります。

いいです、これは私の最初の投稿です。

TIA

答えて

0

@ Program.Xに記載されているように、完全な検索/置換が必要な場合があります。これを行うつもりなら、さらに一歩進んでマスターページを使用したいかもしれませんが、実際にはあなたの時間的制約とそこにいくつのページを修正するかによって決まります。

+0

これはかなりの仕事になるでしょうが、私はそのコンセプトが好きです。 – hewstone

4

あなたはユーザーコントロールがそれを見ることができますので、あなたのページの頭には、サーバーで実行する必要があるかもしれません。

例えば:私はこれはすでに、すべてのページで行われていない場合は、ソートのポイントを破ると思い

<head runat="server"> 

。たぶん、これを実装するために、広範囲のRegEx検索/置換が役立つでしょう。

+0

お客様がマスターページソリューションの時間を予算化したくない場合、これは私のバックアップソリューションとなります。正しいのですが、regExを使用して簡単に検索/置換するとこれが修正されます。ありがとう! – hewstone

1

お返事ありがとうございます。私は仕事量の最小限のソリューションを求めていたことを知っていますが、コードを簡単に管理したいと思っています。私がしようとしているのは、@devstuffのようなすべてのページのテンプレートとしてマスターページを作成することです。次に、マスターページを使用するために、50ページ程度の既存のページを変更します。そうすれば、将来このようなことが起こると、すべてを1か所で簡単に変更できます。

ありがとうございました!

+1

私は間違いなく3ページ以上のページで終わるすべての新しいサイトにマスターページを使用することをお勧めします。ほとんどのコンテンツページでは、ロゴやメニューなどのフレーミングに関することはあまり気にしないので、後で多くの苦痛を救うことができます。 – devstuff

関連する問題