3

コンテンツページを切り替えるときに、マスターページdivの画像を更新しようと何度か試みました。最初に、「MasterType VirtualPath =」を宣言して、コンテンツページのページ読み込みイベントから更新できるマスターページプロパティを作成しようとしましたが、この時点でマスターが既に読み込まれているため、機能しませんでした。マスターページのページ読み込みイベントでImageUrlを設定したときに機能したので(!Page.IsPostBackの場合は画像のURL属性を設定します)、機能することはわかっていますが、アクセスするコンテンツページごとに画像を変更する必要があります。

次に、マスターのメニューボタンのクリックイベントを使用して、コンテンツページをロードする前にImageUrlを設定しようとしましたが、これも効果がありませんでした。UpdatePanelを使用して画像を保持することを提案するスレッドを見たので、次にそれを試すことができます。これを行うための最良の方法は何ですか..??

代わりにコンテンツdivに画像を配置し、マスターからそれを更新するのがより良い方法であっても、私は驚かないでしょう。任意の提案やリンクは大歓迎です。誰かが見てみたいなら、私はコードを投稿することができます。ありがとう。

4

1 に答える 1

3

なぜ難しいと思ったのかわかりません。これを行うには多くの方法がありますが、1 つだけを示します。これをテストしたところ、うまくいきました。どのように?

マスター ページで、イメージを定義して追加しますrunat="server"

<img src="put your default image.jpg" runat="server" id="changingImage" />

コンテンツページで、これを行います

protected void Page_Load(object sender, EventArgs e)
{
    HtmlImage img = Master.FindControl("changingImage") as HtmlImage;

    img.Src = "~/images/imageForContentPage1.jpg"; //replace this image based on your criteria

}

考えられる例外はNull Reference、指定されたイメージ コントロールの名前.FindControlが見つからなかった場合です。マスター ページで名前を付けたとおりであることを確認します。Null参照例外を防ぐために、チェックをラップします

if(img != null)
{
    img.Src = "~/images/imageForContentPage1.jpg";
}
于 2013-02-10T12:31:55.093 に答える