ASP.NETでマスターページをプログラミングで設定
1177 ワード
多くの場合、プロジェクトの実行状況に応じて、ページの実行時にどのマスターページを使用するかを決定する必要があります.たとえば、エンタープライズ管理システムでは、企業の部門にマスターページを使用する必要があり、他の部門には別のマスターページを使用する必要があります.明らかに、この場合、前のマスターページ呼び出し方式は満たされず、プログラミング方式でマスターページを動的に設定する必要があります.
実は、プログラミング方式でマスターページを動的に設定するのは便利です.Page.MasterPageFileプロパティを設定するだけでいいです.しかし、このステップはPage.Initイベントフェーズで完了する必要があります.その後、このプロパティを設定すると例外が発生します.次のコードに示します.
Page.MasterPageFileプロパティをPage_に設定するとLoadイベントでは、「The'MasterPageFile'property can only be set in or before the'Page_PreInit'event.」というエラーメッセージが表示されます.したがって、Page.MasterPageFileプロパティをPage.Initイベントに設定する必要があります.
マスターページをプログラミングで動的に設定する場合は、次の点に注意する必要があります.
1)Web.configファイルまたはコンテンツページの@Page命令にMasterPageFileの要素が参照されていないことを確認し、それだけでロードに成功したページが得られ、マスターページが導入される.
2)コンテンツページがマスターページへの強いタイプの参照を作成するためにMasterType命令を使用していないことを確認します.
3)コンテンツページと設定したマスターページが完全に互換性があることを確認する.
実は、プログラミング方式でマスターページを動的に設定するのは便利です.Page.MasterPageFileプロパティを設定するだけでいいです.しかし、このステップはPage.Initイベントフェーズで完了する必要があります.その後、このプロパティを設定すると例外が発生します.次のコードに示します.
protected void Page_PreInit(object sender, EventArgs e)
{
Page.MasterPageFile = "~/Test.Master";
}
Page.MasterPageFileプロパティをPage_に設定するとLoadイベントでは、「The'MasterPageFile'property can only be set in or before the'Page_PreInit'event.」というエラーメッセージが表示されます.したがって、Page.MasterPageFileプロパティをPage.Initイベントに設定する必要があります.
マスターページをプログラミングで動的に設定する場合は、次の点に注意する必要があります.
1)Web.configファイルまたはコンテンツページの@Page命令にMasterPageFileの
2)コンテンツページがマスターページへの強いタイプの参照を作成するためにMasterType命令を使用していないことを確認します.
3)コンテンツページと設定したマスターページが完全に互換性があることを確認する.