ASP.NET(C#)生成静态页面实现

 

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;

namespace xmlDemo
{
      
/**//**//**//// <summary>
      
/// staticWeb 的摘要说明。
      
/// </summary>
      public class staticWeb : System.Web.UI.Page
      {
          
protected System.Web.UI.WebControls.Label Label1;
          
protected System.Web.UI.WebControls.Label Label2;
          
protected System.Web.UI.WebControls.Label Label3;
          
protected System.Web.UI.WebControls.TextBox TextBox1;
          
protected System.Web.UI.WebControls.TextBox TextBox2;
          
protected System.Web.UI.WebControls.TextBox TextBox3;
          
protected System.Web.UI.WebControls.Button Button1;
    
          
private void Page_Load(object sender, System.EventArgs e)
          {
              
// 在此处放置用户代码以初始化页面
          }

          
public bool WriteFile(string strText,string strContent,string strAuthor)
          {
              
string path = Server.MapPath("~/news/");
              Encoding code 
= Encoding.GetEncoding("gb2312");
              
// 读取模板文件
              string temp = 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=DateTime.Now.ToString("yyyyMMddHHmmss")+".htm";
              
// 替换内容
              
// 这时,模板文件已经读入到名称为str的变量中了
              str =str.Replace("ShowArticle",strText); //模板页中的ShowArticle
              str = str.Replace("biaoti",strText);
              str 
= str.Replace("content",strContent);
              str 
= str.Replace("author",strAuthor);
              
// 写文件
              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();
              }
              
return true
          }

          Web 窗体设计器生成的代码Web 窗体设计器生成的代码
#region Web 窗体设计器生成的代码
          
override protected void OnInit(EventArgs e)
          {
              
//
              
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
              
//
              InitializeComponent();
              
base.OnInit(e);
          }
        
          
/**//**//**//// <summary>
          
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
          
/// 此方法的内容。
          
/// </summary>
          private void InitializeComponent()
          {    
              
this.Button1.Click += new System.EventHandler(this.Button1_Click);
              
this.Load += new System.EventHandler(this.Page_Load);

          }
          
#endregion

          
private void Button1_Click(object sender, System.EventArgs e)
          {
              
if(WriteFile(TextBox1.Text,TextBox2.Text,TextBox3.Text))
                  Response.Write(
"<font color=\"red\">成功生成静态网页");
              
else
                  Response.Write(
"<font color=\"red\">生成出错");
          }
      }
}
posted @ 2007-06-18 17:29  leon qian  阅读(772)  评论(0)    收藏  举报