Asp.net1.1シミュレーション2.0のMasterPage効果を実現

2279 ワード

Asp.Net 2.0では、ページ全体の構造が同じサイトを簡単に完成させることができるMasterPageの機能を提供しています.また、後期にインタフェースを修正するときはMasterPageを修正すればいいので、インタフェースを一つ一つ修正する必要がなく、開発者を大幅に便利にすることができます.実はこのような技術はAsp.net1.1においても実現可能である.
一、構想分析
MasterPageを使用できるサイトでは、上部、下部などのページ構造の大部分が同じですが、左右に表示される内容は違います.この場合、左右のコンテンツもそれぞれユーザーコントロールに配置し、現在のアクセスアドレスに基づいてユーザーコントロールを動的にロードすることで、動的にロードされたユーザーコントロールの内容やMasterPageのフレームワークを変更すれば、Webサイトの修正の目的を達成することができます.
二、実現過程
まず、現在アクセスしているファイルアドレスを取得します.コードは次のとおりです.//
string strRequestUrl = Request.Url.AbsolutePath.ToString();
// ,
string strNowViewFile = strRequestUrl.Substring((strRequestUrl.LastIndexOf(@"/") + 1)).Trim().ToLower();

「追加追加Webユーザーコントロール」をクリックして3つのユーザーコントロールを新規作成し、それぞれMasterPageと命名する.ascx、Head.ascxとFoot.ascx、MasterPage.ascxに3行2列のテーブルを追加し、Head.ascxとFoot.ascxコントロールをMasterPageにドラッグします.ascxでは、同時に左右にPlaceHolderコントロールを追加し、それぞれhldLeftControlとhldRightControlと命名し、完成後の効果は以下の通りです.
  Head.ascx
  hldLeftControl
  hldRightControl
  Foot.ascx
このときMasterPage.AscxはIndexのような特定のページにドラッグする.aspxでは、実行後に上部、下部の内容が表示されます.次に、現在アクセスするファイルアドレスに基づいて、どのユーザコントロールを左右に動的にロードするかを決定します.この部分はMasterPageです.ascx.csで完了します.コードは次のとおりです.switch(strNowViewFile)
{
//
case "index.aspx":
// ,
Control_Index_IndexRightControl indexRightControl;
//
indexRightControl = (Control_Index_IndexRightControl)Page.LoadControl("Control_Index_IndexRightControl.ascx");
// PlaceHolder
plhRightControl.Controls.Add(indexRightControl);
break;
//
case "Register.aspx":
Control_Login_Register register;
register = (Control_Login_Register)Page.LoadControl("Control_Login_Register.ascx");
plhRightControl.Controls.Add(register);
break;
default:
indexRightControl = (Control_Index_IndexRightControl)Page.LoadControl("Control_Index_IndexRightControl.ascx");
plhRightControl.Controls.Add(indexRightControl);
break;
}

以上のコードを追加すると、アクセスするページがindexである.aspx、index.aspxページの右側に、Control_がロードされます.Index_IndexRightControl.ascxコントロールの内容は、Registerにアクセスしている場合です.aspxページ、右側にControl_がロードされますLogin_Register.ascxコントロールの内容これによりMasterPageのような機能が実現する.