ASP.NET 1.0中实现模板页
【IT168 技术文档】
使用过JavaStruts的程序员应该知道,Struts中有一个模板标记,虽然其使用起来比较复杂,但对于有大量页面的程序来说其带来了很多方便。但是,在ASP.NET中并没有现成实现可用,这方面国内讨论的也很少,其实,重写sender方法我们也可以实现类似的功能。下面是我项目中使用的一个基类模板类。
using System;
using System.Web.UI;
namespace RepeaterDemo.Web.PageTemplate
...{
/**//// <summary>
/// WebPageTmplate 页模板基类。
/// </summary>
public class WebPageTmplate:System.Web.UI.Page
...{
属性#region 属性
string pageTitle="Title";
string pageHeader= "<table cellspacing='0' cellpadding='0' width='100%' height='49' background='http://localhost//RepeaterDemo//Images/top_stripe1.gif' border='0'>" +
" <tr>" +
" <td valign='top'><img alt='' src='http://localhost//RepeaterDemo//Images/title.gif' border='0'></td>" +
" </tr>" +
"</table>" ;
string pageScript;
string pageLeft=" Menu";
string pageFooter="<div align='center'>meil.cnblogs.com meil 版权所有 2006</div>";
public string PageTitle
...{
set ...{pageTitle=value;}
get ...{return pageTitle;}
}
public string PageHeader
...{
set ...{pageHeader=value;}
get ...{return pageHeader;}
}
public string PageScript
...{
set ...{pageScript=value;}
get ...{return pageScript;}
}
public string PageLeft
...{
set ...{pageLeft=value;}
get ...{return pageLeft;}
}
public string PageFooter
...{
set ...{pageFooter=value;}
get ...{return pageFooter;}
}
#endregion
protected override void Render(HtmlTextWriter writer)
...{
writer.Write(@"<html><head><title>" + pageTitle + @"</title>");
writer.Write(pageScript + @"</head><body>");
writer.Write(pageHeader);
writer.Write(@"<table><tr><td width='200'> " + pageLeft + @"</td><td>");
// 其次允许基类呈现ASPX页面中的HTML代码及ASP.NET控件
base.Render( writer );
writer.Write("</td></tr></table>");
writer.Write(@"<div align='cnter'>" + pageFooter + @"</div>");
writer.Write(@"</body></html>");
}
}
}
0
相关文章
