在ASP.NET中运用PlaceHolder控件

在从一个Web页面转换到另一个Web页面时,你的ASP.NET应用程序的用户界面的某些部分常常是保持不变的——如某些“装饰”的部分:页眉处的GIF图片、水平工具条或导航条、左侧的链接、等等。你可以继续用它们,而不必为每个页面重建。

在过去,一个流行的ASP技术就是为一个页面的每个主要部分创建一个include文件,然后建一个整体的HTML表,表的单元包含每个include文件。这种方法是可行的,但是不美观,还容易出错。幸运的是,ASP.NET可以让你用一种更好的方法来解决这个问题,运用一个Visual Studio .NET PlaceHolder Web控件。该控件将其它控件作为一个集合(collection)包含起来。你可以在运行时清除那个collection或添加它;例如,你可以在运行时添加一个Web用户控件(一个模块式的Web页面)。我将讲述如何将PlaceHolder Web控件同Web用户控件结合起来运用,为构建ASP.NET应用程序提供一个方法。

首先在VS.NET中创建一个新的ASP.NET Web应用程序。我在样例代码中用的是C#。创建一个Web窗体,保存的文件带有ASPX扩展名。我称其为我的main.aspx。该页面是你的应用程序中唯一的Web页面,因为你用Web用户控件(ASCX文件)来开发所有的页面“内容”。

在main.aspx页面中创建你选择的站点装饰内容。在你想放置站点丰富内容地方添加一个PlaceHolder控件。然后,将下面的代码添加到你的页面的Page Load事件中: private void Page_Load(object sender,
System.EventArgs e)
{
string p = Request.QueryString.Get("p");
PlaceHolder1.Controls.Clear();
if (p == null)
PlaceHolder1.Controls.Add(LoadControl
("modules/" + "Default" + ".ascx"));
else
{
PlaceHolder1.Controls.Add(LoadControl
("modules/" + p + ".ascx"));
}
}


通过该代码,你可以在项目模块文件夹中看到一个包含Web用户控件页面(ASCX)的名字的查询字符串参数p。你不用将所有ASCX文件都放在一个单独的文件夹中,但这么做的确可以进一步隔离应用程序。

自己写的一个:

private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   if(!IsPostBack)
   {
    AddControlToPlaceHolder();
   }
  }

  private void AddControlToPlaceHolder()
  {
   PlaceHolder1.Controls.Clear();
   for(int i=0;i<=5;i++)
   {
    TextBox control=new TextBox();
    control.Text=i.ToString();
    PlaceHolder1.Controls.Add(control);
    PlaceHolder1.Controls.Add(new LiteralControl("<br>"));   
   }
  }

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值