asp.net2.0 动态生成静态页并分页实例

来自: http://blog.csdn.net/hflkl1314/archive/2007/08/09/1733588.aspx
asp.net2.0 动态生成静态页并分页实例
    看了看很多网页中的新闻都是分页的,我想实现这样的功能,看看他们实现的方法,基本是一个新闻分成多个html文件保存,然后用页码连接起来。(不知道我的理解是否正确,如果不正确请大家给我指点一二)
1、从数据库中获取新闻内容。包括新闻标题、内容等。
2、设置页面显示的字符串长度,获取新闻内容的字符长度。做初始设置
3、按页面大小设置的长度截取新闻内容的字符。
4、获取模板页面。在相关的替换字符中用标题、内容等替换字符串。
5、保存新页面到制定目录下面

下面是代码和资源管理器内容、

asp.net2.0 动态生成静态页并分页实例
solid.aspx内容
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;
using  System.IO;

public  partial  class  solid : System.Web.UI.Page
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        WriteFile(
" 奥运专题 " " 奥运会真棒!<br/> " " 2 " " 2.html " );
    }
    
public   void  WriteFile( string  strText,  string  content,  string  page,  string  name)
    {
        
string  path  =  HttpContext.Current.Server.MapPath( " news/get " );
        System.Text.Encoding code 
=  System.Text.Encoding.GetEncoding( " gb2312 " );

        
//  读取模板文件
         string  temp  =  HttpContext.Current.Server.MapPath( " news/text.htm " );
        StreamReader sr 
=   null ;
        StreamWriter sw 
=   null ;
        
string  str  =   "" ;
        
try
        {
            sr 
=   new  StreamReader(temp, code);
            str 
=  sr.ReadToEnd();  //  读取文件
        }
        
catch  (Exception exp)
        {
            HttpContext.Current.Response.Write(exp.Message);
            HttpContext.Current.Response.End();
            sr.Close();
        }
        
string  htmlfilename  =  name.ToString();
        
//  替换内容
        
//  这时,模板文件已经读入到名称为str的变量中了
        str  =  str.Replace( " $title " , strText);  // 模板页中的$title,即标题
        str  =  str.Replace( " $content " , content); // 模板页中的$content,即内容
        str  =  str.Replace( " $page " , page); // 模板页中的$page,即页码连接格式

        
//  写文件
         try
        {
            sw 
=   new  StreamWriter(path  +   " / "   +  htmlfilename,  false , code);
            sw.Write(str);
            sw.Flush();
        }
        
catch  (Exception ex)
        {
            HttpContext.Current.Response.Write(ex.Message);
            HttpContext.Current.Response.End();
        }
        
finally
        {
            sw.Close();
        }
    }
}

text.htm内容
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head >
    
< title > 无标题页 </ title >
</ head >
< body >
< div  style ="font-size: 20px; text-align: center;" > 文章分页测试 </ div >
< div  style ="font-size: 15px; text-align: center; color: #009966;" > $title </ div >
< div  style ="font-size: 12px; text-align: center; color: darkgray;" > $page </ div >
< div  style ="font-size: 12px;" > $content </ div >


</ body >
</ html >

你可能感兴趣的:(asp.net)