事件驱动自动生成静态页面模板解决方法(二)——生成静态页面(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)。 源代码网推荐 源代码网供稿. |
