これは奇妙な状況ですが、同じページを2度必要としないようにする必要があります。ウェブフォームのマスターページをオン/オフにする
メインフォームを介して開いているため、ポップアップを介して開くウェブフォームは現在マスターページがありません。
私のクライアントからは、このポップアップまたはメインフォームの近くのメニューから開く必要があることがわかりました。メニューから開くと、通常のページのように開き、マスターページレイアウトを含む必要があります。
これは可能ですか?
これは奇妙な状況ですが、同じページを2度必要としないようにする必要があります。ウェブフォームのマスターページをオン/オフにする
メインフォームを介して開いているため、ポップアップを介して開くウェブフォームは現在マスターページがありません。
私のクライアントからは、このポップアップまたはメインフォームの近くのメニューから開く必要があることがわかりました。メニューから開くと、通常のページのように開き、マスターページレイアウトを含む必要があります。
これは可能ですか?
私は次の2つのオプションがあると思う:コードを経由して設定し
:
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
if(xy)
{
this.MasterPageFile = "~/MyMaster.Master"; //Path to masterpage '~' if rootfolder
}
else
{
this.MasterPageFile = "";
}
}
利用のUserControl:
を、現在のページのコードが含まれているユーザーコントロール(た.ascx)を作成します。 。次に、masterpageで2番目のページ(.aspx)を作成し、両方のページにコントロールを登録します。
のUserControlに関するいくつかの情報:
https://msdn.microsoft.com/en-us/library/y6wb1a0e.aspx?f=255&MSPPError=-2147217396 https://msdn.microsoft.com/en-us/library/sbz9etab.aspx
動作しませんでした。私は何か違うことをしました。 – Phiter
私は別のアプローチを使用する必要がありました。
マスターページ(ヘッダー、フッター、メニュー)のすべての要素をrunat=server
にして、マスターページのレイアウトが欲しくない場所に非表示に設定しました。
明らかに汚れたハックですが、うまく機能しました。
ページがマスターの背後にあるコンテンツページであると想定されている場合、フォーム全体ではなくマークアップ全体が含まれます。そのページをマスターしなければ、単に動作しません。あなたが何をすることができるかは、2つの異なるマスターページを持ち、そのページがどのように開かれているかによってそれらの間で交互になります。これは非常に便利です – Andrei
空白のマスターページを作成し、 'this.MasterPage =" myBlankMasterPage.cs "'が正しく動作するはずです。 – Phiter
わかりません。あなたのページは、他のページと同様に見えるように、最初から変更する必要があります。 – Andrei