ASP.NET1.1实现仿2.0的MasterPage功能


  本文标签:asp.net1.1

  在asp.net 2.0中,提供了一个masterpage的功能,它可以让我们很方便的完成页面的整体结构相同的网站,而且后期修改界面的时候只要修改一下masterpage即可,无需一个个界面进行修改,这样就大大的方便了开发人员.其实类似这种技术在asp.net1.1中也可以实现.

  思路分析

  对于可以用mastespanpage的网站来说,它的页面结构大部份是一至的,比如顶部、底部都是一样的,只不过左右侧显示的内容不同  。这个时候,你不妨把左右两侧的内容也分别放在用户控件中,然后根据当前的访问地址来动态加载用户控件,这样到时候只要修改动态加载的用户控件的内容,或是masterpage的框架,即可实现修理网站的目的  。

  实现过程

  首先取得当前访问的文件地址,代码如下:

  

  1. //取得当前访问的路径  
  2. sspaning sspanrequesturl = request.url.absolutepath.tosspaning();  
  3. //取得当前访问的文件名,并转换成小写  
  4. sspaning sspannowviewfile = sspanrequesturl.subsspaning((sspanrequesturl.lastindexof(@"/") + 1)).trim().tolower();  

  然后点击“添加?添加web用户控件”新建三个用户控件,分别命名为masterpage.ascx、head.ascx和foot.ascx,在masterpage.ascx中添加一个三行两列的表格,然后将head.ascx和foot.ascx控件拖到masterpage.ascx中,同时在左右两侧均添加一个placeholder控件,分别命名为hldleftconspanol和hldrightconspanol,完成后效果如下:

  1. head.ascx hldleftconspanol hldrightconspanol foot.ascx 

  此时只要将masterpage.ascx拖到具体的页面中,比如index.aspx,运行后就会显示顶部、底部的内容  。接下来要根据当前访问的文件地址,确定动态加载哪些用户控件到左右两侧位置,这部份操作在masterpage.ascx.cs中完成  。代码如下:

  1. //ASP.NET1.1
  2. switch(sspannowviewfile)  
  3. {  
  4. //如果当前访问的是首页  
  5. case "index.aspx":   
  6. //创建用户控件类的对象,类名与用户控件的名称是相同的   
  7. conspanol_index_indexrightconspanol indexrightconspanol;  
  8. //加载用户控件  
  9. indexrightconspanol = (conspanol_index_indexrightconspanol)page.loadconspanol("conspanol_index_indexrightconspanol.ascx");  
  10. //在右侧的placeholder控件中显示用户控件   
  11. plhrightconspanol.conspanols.add(indexrightconspanol);  
  12. break;  
  13. //加载会员注册部份  
  14. case "register.aspx":   
  15. conspanol_login_register register;  
  16. register = (conspanol_login_register)page.loadconspanol("conspanol_login_register.ascx");  
  17. plhrightconspanol.conspanols.add(register);  
  18. break;  
  19. default:   
  20. indexrightconspanol = (conspanol_index_indexrightconspanol)page.loadconspanol("conspanol_index_indexrightconspanol.ascx");  
  21. plhrightconspanol.conspanols.add(indexrightconspanol);  
  22. break;  
  23. }  

  添加了以上代码后,如果访问的页面是index.aspx,在index.aspx页右侧,就会加载conspanol_index_indexrightconspanol.ascx控件的内容,如果访问的是register.aspx页,右侧就会加载conspanol_login_register.ascx控件的内容.

  这样就使得asp.net1.1实现了masterpage的功能.