当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  事件驱动自动生成静态页面模板解决方法(二)——生成静态页面(2007年9月13日更新代码)

 事件驱动自动生成静态页面模板解决方法(二)——生成静态页面(2007年9月13日更新代码)

点击次数:25 次 发布日期:2008-11-26 09:52:56 作者:源代码网
源代码网推荐      生成静态页面其实已经不是什么高深的技术了。我这里也只是简单封装了一下,方便调用。
源代码网推荐  
源代码网推荐  【2007年9月13日更新代码,修正一些小问题】
源代码网推荐  
源代码网推荐  调用代码示例
源代码网推荐  
源代码网推荐   HtmlBuilder builder = new HtmlBuilder(HtmlCollection.GetTemplateByKey("Account"));
源代码网推荐   builder.ReplaceList.Add("Titel", "ceshi");
源代码网推荐   builder.FileTo = Server.MapPath("~/NewsPage");
源代码网推荐   builder.FileCode = "dd";
源代码网推荐   builder.FileExtension = "html";
源代码网推荐   HyperLink link = new HyperLink();
源代码网推荐   link.Text = "dddd";
源代码网推荐   link.NavigateUrl = "~/NewsPage/" + builder.WriteHtml();
源代码网推荐   this.Controls.Add(link);
源代码网推荐  
源代码网推荐  cs ----------------------------------------------------------------------------------------------
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  using System;
源代码网推荐  using System.Collections.Generic;
源代码网推荐  using System.Text;
源代码网推荐  using System.IO;
源代码网推荐  using System.Collections;
源代码网推荐  namespace Tirsun.WebSite.InformationProvider.Factory
源代码网推荐  {
源代码网推荐   public class HtmlBuilder
源代码网推荐   {
源代码网推荐   private RespaceArrayList _ReplaceList = new RespaceArrayList();
源代码网推荐   private string _Template;
源代码网推荐   private string _FileTo;
源代码网推荐   private string _FileCode;
源代码网推荐   private string _FileExtension;
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 模板
源代码网推荐   /// </summary>
源代码网推荐   public string Template
源代码网推荐   {
源代码网推荐   get
源代码网推荐   {
源代码网推荐   return _Template;
源代码网推荐   }
源代码网推荐   set
源代码网推荐   {
源代码网推荐   _Template = value;
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 将要写入的根文件夹
源代码网推荐   /// </summary>
源代码网推荐   public string FileTo
源代码网推荐   {
源代码网推荐   get
源代码网推荐   {
源代码网推荐   return _FileTo;
源代码网推荐   }
源代码网推荐   set
源代码网推荐   {
源代码网推荐   _FileTo = value;
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 文件名伴随码,如果为空则不伴随
源代码网推荐   /// </summary>
源代码网推荐   public string FileCode
源代码网推荐   {
源代码网推荐   get
源代码网推荐   {
源代码网推荐   if (_FileCode == null)
源代码网推荐   _FileCode = "";
源代码网推荐   return _FileCode;
源代码网推荐   }
源代码网推荐   set
源代码网推荐   {
源代码网推荐   _FileCode = value;
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 设置文件后缀名,默认为aspx
源代码网推荐   /// </summary>
源代码网推荐   public string FileExtension
源代码网推荐   {
源代码网推荐   get
源代码网推荐   {
源代码网推荐   if (_FileExtension == null)
源代码网推荐   _FileExtension = "aspx";
源代码网推荐   return _FileExtension;
源代码网推荐   }
源代码网推荐   set
源代码网推荐   {
源代码网推荐   _FileExtension = value;
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 替换元素组
源代码网推荐   /// </summary>
源代码网推荐   public RespaceArrayList ReplaceList
源代码网推荐   {
源代码网推荐   get
源代码网推荐   {
源代码网推荐   return _ReplaceList;
源代码网推荐   }
源代码网推荐   set
源代码网推荐   {
源代码网推荐   _ReplaceList = value;
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   public HtmlBuilder()
源代码网推荐   {
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 初始化并设定模板
源代码网推荐   /// </summary>
源代码网推荐   /// <param name="strTemplate"></param>
源代码网推荐   public HtmlBuilder(string strTemplate)
源代码网推荐   {
源代码网推荐   Template = strTemplate;
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 生成Html文件
源代码网推荐   /// </summary>
源代码网推荐   /// <param name="FileName">文件名,如果有同文件则覆盖</param>
源代码网推荐   /// <returns></returns>
源代码网推荐   public void WriteHtml(string FileName)
源代码网推荐   {
源代码网推荐   string strContent = Template;
源代码网推荐   foreach (ReplaceItem ri in ReplaceList.Array)
源代码网推荐   {
源代码网推荐   strContent = strContent.Replace(string.Format("{0}{1}{2}", ReplaceConfig.REPLACETAG, ri.Label, ReplaceConfig.REPLACETAG), ri.Text);
源代码网推荐   }
源代码网推荐  
源代码网推荐   StreamWriter sw = new StreamWriter(FileName, false, Encoding.UTF8);
源代码网推荐   sw.Write(strContent);
源代码网推荐   sw.Flush();
源代码网推荐   sw.Close();
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 生成Html文件(不生成同名文件)
源代码网推荐   /// </summary>
源代码网推荐   /// <returns></returns>
源代码网推荐   public string WriteHtml()
源代码网推荐   {
源代码网推荐   string DirYear = DateTime.Now.Year.ToString();
源代码网推荐   string DirMonth = DateTime.Now.Month.ToString();
源代码网推荐   string DirDay = DateTime.Now.Day.ToString();
源代码网推荐  
源代码网推荐   string FileName = DateTime.Now.ToLongTimeString().Replace(":", "");
源代码网推荐  
源代码网推荐   if (!Directory.Exists(string.Format("{0}\{1}\{2}\{3}", FileTo, DirYear, DirMonth, DirDay)))
源代码网推荐   Directory.CreateDirectory(string.Format("{0}\{1}\{2}\{3}", FileTo, DirYear, DirMonth, DirDay));
源代码网推荐  
源代码网推荐   string strContent = Template;
源代码网推荐   foreach (ReplaceItem ri in ReplaceList.Array)
源代码网推荐   {
源代码网推荐   strContent = strContent.Replace(string.Format("{0}{1}{0}", ReplaceConfig.REPLACETAG, ri.Label), ri.Text);
源代码网推荐   }
源代码网推荐   string strFileName = string.Format("{0}\{1}\{2}\{3}\{4}{5}.{6}", FileTo, DirYear, DirMonth, DirDay, FileName, FileCode, FileExtension);
源代码网推荐  
源代码网推荐   //保证文件不被复写
源代码网推荐   bool Has = true;
源代码网推荐   while (Has)
源代码网推荐   {
源代码网推荐   if (File.Exists(strFileName))
源代码网推荐   {
源代码网推荐   strFileName = string.Format("{0}\{1}\{2}\{3}\{4}{5}{6}.{7}", FileTo, DirYear, DirMonth, DirDay, FileName, DateTime.Now.Millisecond, FileCode, FileExtension);
源代码网推荐   }
源代码网推荐   else
源代码网推荐   {
源代码网推荐   Has = false;
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   StreamWriter sw = new StreamWriter(strFileName, false, Encoding.UTF8);
源代码网推荐   sw.Write(strContent);
源代码网推荐   sw.Flush();
源代码网推荐   sw.Close();
源代码网推荐  
源代码网推荐   return strFileName.Replace(FileTo, "").Replace("\", "/");
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 替换元素组
源代码网推荐   /// </summary>
源代码网推荐   public class RespaceArrayList
源代码网推荐   {
源代码网推荐   private List<ReplaceItem> _List = new List<ReplaceItem>();
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 添加替换元素
源代码网推荐   /// </summary>
源代码网推荐   /// <param name="item"></param>
源代码网推荐   /// <returns></returns>
源代码网推荐   public void Add(ReplaceItem item)
源代码网推荐   {
源代码网推荐   _List.Add(item);
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 添加替换元素
源代码网推荐   /// </summary>
源代码网推荐   /// <param name="strLabel">替换元素标签</param>
源代码网推荐   /// <param name="strText">替换元素内容</param>
源代码网推荐   /// <returns></returns>
源代码网推荐   public void Add(string strLabel, string strText)
源代码网推荐   {
源代码网推荐   _List.Add(new ReplaceItem(strLabel, strText));
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 移除替换元素组
源代码网推荐   /// </summary>
源代码网推荐   /// <param name="item"></param>
源代码网推荐   public void Remove(ReplaceItem item)
源代码网推荐   {
源代码网推荐   _List.Remove(item);
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 删除指定元素的替换元素
源代码网推荐   /// </summary>
源代码网推荐   /// <param name="index"></param>
源代码网推荐   public void RemoveAt(int index)
源代码网推荐   {
源代码网推荐   _List.RemoveAt(index);
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 替换元素索引
源代码网推荐   /// </summary>
源代码网推荐   /// <param name="i"></param>
源代码网推荐   /// <returns></returns>
源代码网推荐   public ReplaceItem this[int i]
源代码网推荐   {
源代码网推荐   get
源代码网推荐   {
源代码网推荐   return _List[i];
源代码网推荐   }
源代码网推荐   set
源代码网推荐   {
源代码网推荐   _List[i] = value;
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 返回替换元素数组
源代码网推荐   /// </summary>
源代码网推荐   public ReplaceItem[] Array
源代码网推荐   {
源代码网推荐   get
源代码网推荐   {
源代码网推荐   return _List.ToArray();
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 替换元素
源代码网推荐   /// </summary>
源代码网推荐   public class ReplaceItem
源代码网推荐   {
源代码网推荐   private string _Label;
源代码网推荐   private string _Text;
源代码网推荐  
源代码网推荐   public ReplaceItem()
源代码网推荐   {
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 替换元素定义
源代码网推荐   /// </summary>
源代码网推荐   /// <param name="strLabel">替换元素标签</param>
源代码网推荐   /// <param name="strText">替换元素内容</param>
源代码网推荐   public ReplaceItem(string strLabel, string strText)
源代码网推荐   {
源代码网推荐   Label = strLabel;
源代码网推荐   Text = strText;
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 需要替换的标签
源代码网推荐   /// </summary>
源代码网推荐   public string Label
源代码网推荐   {
源代码网推荐   get
源代码网推荐   {
源代码网推荐   return _Label;
源代码网推荐   }
源代码网推荐   set
源代码网推荐   {
源代码网推荐   _Label = value;
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 替换成的内容
源代码网推荐   /// </summary>
源代码网推荐   public string Text
源代码网推荐   {
源代码网推荐   get
源代码网推荐   {
源代码网推荐   return _Text;
源代码网推荐   }
源代码网推荐   set
源代码网推荐   {
源代码网推荐   _Text = value;
源代码网推荐   }
源代码网推荐   }
源代码网推荐   }
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐   /// 替换配置
源代码网推荐   /// </summary>
源代码网推荐   public class ReplaceConfig
源代码网推荐   {
源代码网推荐   /// <summary>
源代码网推荐   /// 标签标识符
源代码网推荐   /// </summary>
源代码网推荐   public const string REPLACETAG = "^";
源代码网推荐   }
源代码网推荐  }
源代码网推荐  
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华