本站首页    管理页面    写新日志    退出

 

Asp.net动态生成html页面
ccnu8 发表于 2005/3/20 22:01:13

作者:uponce    此功能适用于后台数据库功能不强的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文件。程序使用了是循环替换,因此对需替换大量元素的模板速度非常快。  (说明:本文是因需要才放到我自己的上边,所以请作者大哥原谅,绝非想占为己有!)

阅读全文(1994) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



 

.: 公告

我要考研了,努力+坚持!!

未曾艰辛难成人,

不经打击老天真。

自古英雄出炼狱,

从来清闲入凡尘。

此去考研鹿何处?

刻苦复习练金身 !

我辈成就复兴业,

立马横刀定乾坤!


Bloginess

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31

.: 我的分类(专题)

首页(9)


In the Bowl

.: 最新日志

考研小结与计划(1)
考研日子第一篇
PHOTOSHOP 快捷键精中选精
学习一下吧
如何用CSS制作横向菜单?
Asp.net动态生成html页面
ASP.net下的前台日历控件源代码(转
一些学习理论
第一次来,记点东西


.: 最新回复

回复:考研小结与计划(1)


The Fishkeeper
blog名称:
日志总数:9
评论数量:5
留言数量:1
访问次数:59284
建立时间:2005年3月14日



Text Me

.: 留言板

签写新留言

你好,请问你用的什么字体?


Other Fish in the Sea

.: 链接


http://www.businessweek.com        商业周刊

   http://www.cnn.com                   

   http://www.blueidea.com/                蓝色理想

   http://www.etc.edu.cn/                    教育技术通讯

   http://www.ft.com

   http://www.nytimes.com/                纽约时报

 




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.023 second(s), page refreshed 144753192 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号