首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 编程开发 > ASP.net教程 > Asp.Net开发技巧 > 正文
在ASP.NET中使用PlaceHolder控件
来源:安全中国网 2009年05月08日 08:41 网友评论:0条 点击:

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

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

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

  在main.aspx页面中创建你选择的站点装饰内容。在你想放置站点丰富内容地方添加一个PlaceHolder控件。然后,将下面的代码添加到你的页面的PageLoad事件中:

  private void Page_Load(t 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文件都放在一个单独的文件夹中,但这么做的确可以进一步隔离应用程序。

  一旦你得到那个字符串后,清空PlaceHolder的Controls集合,清除你在先前可能显示的任何ASCX。然后,查看一下代码,看你是否需要加载一个缺省的ASCX。最后,如果p查询字符串是请求的一部分,那么由p查询字符串代表的页面就被加载了。

  你不需要费很大的劲构建代码来在你的站点上显示多个Web页面。在你的VS.NET项目中添加一个新的Web用户控件页面。一旦你添加了这个页面,你就可以把它当作你的应用程序中的唯一的页面来设计并编写代码了;你甚至不需要知道它将在main.aspx页面中运行。当然,如果该页面需要与主页面交互,情况并没有这么简单,但在这里我并不打算讲述这个问题。

   保持你的Web GUIs的恒量元素

  设想你需要在VS.NET开发环境中显示一个AccountLogon用户控件(见图1)。代码只给开发人员提供与该页面细节相关的UI。没有办法改变整体页面的其它方面。

  现在,当你在一个浏览器中运行http://localhost/CSCSdotNET/main.aspx时,首先加载了default.ascx页面,这是由于main.aspx的PageLoad事件的缘故。要导航到Login页面,你只需将一个p查询字符串参数添加到请求——在这个例子中,运用URLhttp://localhost/CSCSdotNET/main.aspx?p=01-AccountLogon。现在显示的就是整个main.aspx页面,以及你在图1中看到的动态加载的01-AccountLogon.ascsWeb用户控件。

  编辑推荐

  详解ASP.NET的四种状态

  ASP.NET十个有效性能优化的方法

  MVC下ASP.NET的表单验证实现

上一篇:浅析ASP.NET中的Web.config文件   下一篇:ASP.NET十个有效性能优化的方法
收藏此页】【打印】【关闭
 相关文章  我要点评
·虚拟主机上用Asp.net实现Urlrewrite
·图片通过asp.net上传到mysql数据库
·浅析ASP.NET中的Web.config文件
·ASP.NET十个有效性能优化的方法
·解决Orcale与Asp.net的端口冲突
·ASP.NET实现页面间值传递的几种方法
·用ASP.NET 2.0 FormView控件控制显示
·写给ASP.NET程序员网站中的安全问题

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2009 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】