关于我们 | 广告服务 | 加盟代理CRM | 返回首页                                                         
设为首页
加入收藏
ASP技术 | .NET技术 | J2EE技术 | PHP技术 | JS技术 | C#技术 | Java技术 | XML技术 | | B/S论坛
 ASP.NET动态生成html页面
 ASP.NET2.0+VS2005利器评析
 全球化与本地化之全球化
 用Atlas打造无刷新Tab效果
 FredCK.FCKeditorV2和Required.
 微软的Ajax库客户端Bug总结
 ASP.NET动态创建控件之绝境求生.
 ASP.NET Cache
 ASP.NET如何进行性能优化问题2.
 ASP.NET如何进行性能优化问题1.
 ASP.NET动态下载文件程序
 导出数据到excel的三种方法
 使用ASP.NET 2.0中的GridView控.
 .NET开发人员十大必备下载工具.
 .NET开发人员十大必备下载工具.
 .NET开发人员十大必备下载工具.
 .NET1.0升级至2.0十个问题
 C#实现数据库的递归查询
 详细研究DataReader
 VS.NET安装部署深入研究
 Asp.Net页面输出到EXCEL
 在Web应用程序中添加其他规范化.
 对IIS中的虚拟目录进行操
 DataGrid自动求和、合并单元格.
 asp.net实现验证码
 tabstrip和multipage的使用二
 tabstrip和multipage的使用
 两个DataTable来绑定到DataGri.
 自定义DataGrid分页设置
 ASP.NET中使用Caching
 一个文件上传的类
 ASP.NET中在线用户统计
 网站间共享数据的WebService
 ASP.NET里的事务处理
 VS.NET下web项目源代码管理
 用TreeView实现树菜单
 在DataGrid中创建一个弹出式窗.
 有关DataGrid显示数据的问题
 让Calendar在页面调用时才显示.
 在web.config中建立数据库连接.
 实时天气及24小时天气预报
 数据库中图片存储及读取
 如何在窗体和窗体之间传送数据.
 利用ASP.NET来访问Excel文档
 使用嵌套的Repeater控件
 用asp.net画饼图
 实现DataList控件的分页
 用ASP.NET加密口令
 使用RangeValidator
 C#做的ASP.NET登錄篇
 ASP.NET图象处理详解
 在网页中动态的生成一个图片
 检测含有中文字符串的实际长度.
 用ASP.NET和XML做的新闻系统
 如何在asp.net中操作文件
 ASP.NET验证控件祥解
 ASP.NET中的事务处理和异常处理.
 ASP.NET上传文件的实例
 在ASP.NET中访问SQL Server
 ASP.NET安全身份验证的实现
 ASP.NET中密码保护
 在ASP.NET中使用.NET组件
 实现Web文件的上传
 asp.net实现pop功能
 ASP.NET创建文件并写入内容
 在ASP.NET中动态生成图形
 ASP.NET中文显示之两种解决方法.
 ASP.NET验证控件详解
 在ASP.NET中使用.NET组件
 资料验证的asp.net程序
 一个完整的案例
 增加修改删除一个数据
 个性化的分页实现
 用ASP.NET识别浏览器
 DataTable控件的使用
 RegularExpressionValidator
 ViewState初探
 ASP.Net的Session
 ASP.Net的Application
 AdRotator控件的使用
 ASP.Net的Cookie实现
 XML、DataSet、DataGrid结合二.
 XML、DataSet、DataGrid结合一.
 ASP.NET中的Web Controls
 ASP.NET程序数组功能调用
 ASP.NET与ASP的不同
 ASP.net发送Email
 ASP.NET、JSP及PHP之间的抉
 

ASP.NET动态生成html页面

源作者:未知                   人气:2851

  此功能适用于后台数据库功能不强的web站点,即大部分文本不是存放在数据库的记录中,而是放在html文件或者xml文件中,仅仅把索引放到数据库中,如文章标题、类别、查询关键字等。这样适合于后台没有诸如MS Sql Server这样的数据库支持的Web站点。
  适用于新闻发布系统,比如sina、163等都是采用动态生成html页面的。
  适用于需动态定制页面的程序。比如论坛、聊天室等。可以加载定制好的html页面,来加强美观。

思路
  1. 利用如Dw-Mx这样的工具生成html格式的模板,在需要添加格式的地方加入特殊标记(如$htmlformat$),动态生成文件时利用代码读取此模板,然后获得前台输入的内容,添加到此模板的标记位置中,生成新文件名后写入磁盘,写入后再向数据库中写入相关数据。
  2. 使用后台代码硬编码Html文件,可以使用HtmlTextWriter类来写html文件。

优点
  1. 可以建立非常复杂的页面,利用包含js文件的方法,在js文件内加入document.write()方法可以在所有页面内加入如页面头,广告等内容。
  2. 静态html文件利用MS Windows2000的Index Server可以建立全文搜索引擎,利用asp.net可以以DataTable的方式得到搜索结果。而Win2000的Index服务无法查找xml文件的内容。如果包括了数据库搜索与Index索引双重查找,那么此搜索功能将非常强大。
  3. 节省服务器的负荷,请求一个静态的html文件比一个aspx文件服务器资源节省许多。

缺点
  思路二: 如果用硬编码的方式,工作量非常大,需要非常多的html代码。调试困难。而且使用硬编码生成的html样式无法修改,如果网站更换样式,那么必须得重新编码,给后期带来巨大的工作量。
  因此这里采用的是第一种思路
  示列代码
  1.定义(template.htm)html模板页面

<html>
<head>
 <title></title>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body >
<table $htmlformat[0] height="100%" border="0" width="100%" cellpadding="10" cellspacing="0" bgcolor="#eeeeee" style="border:1px solid #000000">
<tr>
<td width="100%" valign="middle" align="left">
<span style="color: $htmlformat[1];font-size: $htmlformat[2]">$htmlformat[3]</span>
</td>
</tr>
</table>
</body>
</html> 

  2.asp.net代码:

//---------------------读html模板页面到stringbuilder对象里----

string[] format=new string[4];//定义和htmlyem标记数目一致的数组
StringBuilder htmltext=new StringBuilder();
try
{
 using (StreamReader sr = new StreamReader("存放模板页面的路径和页面名"))
 {
  String line;
  while ((line = sr.ReadLine()) != null)
  {
   htmltext.Append(line);
  }
  sr.Close();
 }
}
catch
{
 Response.Write("<Script>alert('读取文件错误')</Script>");
}

//---------------------给标记数组赋值------------

format[0]="background=\"bg.jpg\"";//背景图片
format[1]= "#990099";//字体颜色
format[2]="150px";//字体大小
format[3]= "<marquee>生成的模板html页面</marquee>";//文字说明
//----------替换htm里的标记为你想加的内容
for(int i=0;i<4;i++)
{
 htmltext.Replace("$htmlformat["+i+"]",format[i]);
}

//----------生成htm文件------------------――

try
{
 using(StreamWriter sw=new StreamWriter("存放路径和页面名",false,System.Text.Encoding.GetEncoding("GB2312")))
 {
  sw.WriteLine(htmltext);
  sw.Flush();
  sw.Close();
 }
}
catch
{
 Response.Write ("The file could not be wirte:");

小结
  用此方法可以方便的生成html文件。程序使用了是循环替换,因此对需替换大量元素的模板速度非常快。

如有疑问,请赐电邮:chinabs2004@163.com OICQ:28194826
中盈信安有限公司
中国BS网版权所有     Copyright chinabs.net
粤ICP备05004724号