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' width='100%' height='49' background='http://localhost//RepeaterDemo//Images/top_stripe1.gif' border='0'>" +
15    " <tr>" +
16    "  <td valign='top'><img alt='' src='http://localhost//RepeaterDemo//Images/title.gif' border='0'></td>" +
17    " </tr>" +
18    "</table>" ;
19 string pageScript;
20
21 string pageLeft="&nbsp;Menu";
22
23 string pageFooter="<div align='center'>meil.cnblogs.com&nbsp;&nbsp;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 width='200'>&nbsp;" + 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 align='cnter'>" + pageFooter + @"</div>");
75
76  writer.Write(@"</body></html>");
77 }
78 }
79
80}
81
82

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3