位置:海鸟网 > IT > ASP.NET >

ASP.NET中实现模板页

使用过JavaStruts的程序员应该知道,Struts中有一个模板标记,虽然其使用起来比较复杂,但对于有大量页面的程序来说其带来了很多方便。但是,在ASP.NET中并没有现成实现可用,这方面国内讨论的也很少,其实,重写sender方法我们也可以实现类似的功能。下面是我项目中使用的一个基类模板类。
  
  
  
   1using System;
   2using System.Web.UI;
   3
   4namespace RepeaterDemo.Web.PageTemplate
   5{
   6 /**//// <summary>
   7 /// WebPageTmplate 页模板基类。
   8 /// </summary>
   9 public class WebPageTmplate:System.Web.UI.Page
  10 {
  11
  12 属性#region 属性
  13 string pageTitle="Title";
  14 string pageHeader= "<table cellspacing='0' cellpadding='0' background='http://localhost//RepeaterDemo//Images/top_stripe1.gif'>" +
  15 " <tr>" +
  16 " <td valign='top'><img alt='' src='http://localhost//RepeaterDemo//Images/title.gif'></td>" +
  17 " </tr>" +
  18 "</table>" ;
  19 string pageScript;
  20
  21 string pageLeft=" Menu";
  22
  23 string pageFooter="<div>meil.cnblogs.com  meil 版权所有 2006</div>";
  24
  25
  26 public string PageTitle
  27 {
  28 set {pageTitle=value;}
  29 get {return pageTitle;}
  30 }
  31
  32 public string PageHeader
  33 {
  34 set {pageHeader=value;}
  35 get {return pageHeader;}
  36 }
  37
  38 public string PageScript
  39 {
  40 set {pageScript=value;}
  41 get {return pageScript;}
  42 }
  43
  44 public string PageLeft
  45 {
  46 set {pageLeft=value;}
  47 get {return pageLeft;}
  48 }
  49
  50 public string PageFooter
  51 {
  52 set {pageFooter=value;}
  53 get {return pageFooter;}
  54 }
  55
  56 #endregion
  57
  58 protected override void Render(HtmlTextWriter writer)
  59 {
  60
  61
  62 writer.Write(@"<html><head><title>" + pageTitle + @"</title>");
  63 writer.Write(pageScript + @"</head><body>");
  64
  65 writer.Write(pageHeader);
  66
  67 writer.Write(@"<table><tr><td> " + pageLeft + @"</td><td>");
  68
  69 // 其次允许基类呈现ASPX页面中的HTML代码及ASP.NET控件
  70 base.Render( writer );
  71
  72 writer.Write("</td></tr></table>");
  73
  74 writer.Write(@"<div>" + pageFooter + @"</div>");
  75
  76 writer.Write(@"</body></html>");
  77 }
  78 }
  79
  80}
  81
  82