关于.net生成静态页面的方法总结.doc_第1页
关于.net生成静态页面的方法总结.doc_第2页
关于.net生成静态页面的方法总结.doc_第3页
关于.net生成静态页面的方法总结.doc_第4页
关于.net生成静态页面的方法总结.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1)做一个比较好的模板temp1.html,并在模板中写好题目,内容,作者 以及发布日期的标记,如果还有其他列表的话也要写好其他列表的标记,如 题目可以用标记:$Title$,内容可以用$cont$,发布日期$PubDate,最新发布新闻列表$DtNewest$;2)设计数据库,可以设置两张表,一张表存放模板,一张用于存放发布新闻的内容如 模板表: TempTable : ID ,classid,TempPath(存放模板的路径); 新闻表: NesTable: ID,ClassID,title,cont,Filepath(发布后存放静态页面的路径),pubdate,author,status;3)添加新闻时,现在记录添加到新闻表中,然后再根据栏目的ID找到该栏目的模板,把模板中的内容读取到一个字符串变量中,并用新闻表中的字段替换模板中的相应标记,然后调用c#中的读写文件的类,写到一个静态文件中如:News.HTml,写成功后再更新数据中静态文件路径filepath;这样一个静态文件就写好了另外本人也从网络上搜集了一些资料,供大家参考(关于新闻内容分页的情况下次叙述)一、类似的模板模板页Text.html代码$ShowArticle$title$author$content$二、C#生成静态页类代码|支持列表生成代码using System;using System.Data;using System.Configuration;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 zj123.Model;using System.IO;using System.Text.RegularExpressions;using System.Runtime.InteropServices;using System.Text;using System.Collections;namespace WebUI.html public class EasyHtml public bool MakeHtml(string artid) bool succ = false; int len = Convert.ToInt32(Convert.ToString(System.Configuration.ConfigurationManager.AppSettingstitlelength) ? 20); /读取数据 string sql = string.Format(select a.*,b.ClassName,b.Depth,b.OrderBy,b.isTop,b.isList,b.IsLinks,b.Links,b.PicURL,b.ParentID,b.TemplateoutId,b.TemplateinNeiId,b.TemplateinListId from article a,zone b where a.classid=b.classid and a.Status=3 and a.articleid=0, artid); DataTable dt = DbHelperOleDb.Query(sql).Tables0; if(dt.Rows.Count0) /外模板 string waitemp = ; DataTable waidt =DbHelperOleDb.Query(string.Format(select * from template where TemplateID=0,Convert.ToString(dt.Rows0TemplateoutId).Trim().Tables0; if (waidt.Rows.Count 0) waitemp = Convert.ToString(waidt.Rows0TemplateContent); /内模板 string neitemp = ;DataTable neidt = DbHelperOleDb.Query(string.Format(select * from template where TemplateID=0, Convert.ToString(dt.Rows0TemplateinNeiId).Trim().Tables0; if (neidt.Rows.Count 0) neitemp = Convert.ToString(neidt.Rows0TemplateContent); /替换模板 waitemp = waitemp.Replace($intemplate$, neitemp); /替换类型 string tempclassname = classes.Common.GetP(Convert.ToString(dt.Rows0classid); waitemp = waitemp.Replace($ClassName$, tempclassname); #region 文章列表 /最新的文章 System.Text.StringBuilder sbneartitle = new System.Text.StringBuilder(); DataTable nearTitledt = DbHelperOleDb.Query(select top 10 case when len(title) + len + then substring(title,1, + len + ) else title end as Title,HtmlPath from article where iscreate=1 order by updatetime desc).Tables0; for (int i = 0; i nearTitledt.Rows.Count; i+) sbneartitle.AppendFormat(1,Convert.ToString(nearTitledt.RowsiHtmlPath),Convert.ToString(nearTitledt.RowsiTitle); sbneartitle.Append(); waitemp = waitemp.Replace($NearTitle$, sbneartitle.ToString(); sbneartitle.Remove(0,sbneartitle.ToString().Length); if (waitemp.Contains($OnTopTitle$) sbneartitle.Append(); /固定 nearTitledt = DbHelperOleDb.Query(select top 10 case when len(title) + len + then substring(title,1, + len + ) else title end as Title,HtmlPath from article where iscreate=1 and OnTop=1 order by updatetime desc).Tables0; for (int i = 0; i nearTitledt.Rows.Count; i+) sbneartitle.AppendFormat(1, Convert.ToString(nearTitledt.RowsiHtmlPath), Convert.ToString(nearTitledt.RowsiTitle); sbneartitle.Remove(0, sbneartitle.ToString().Length); sbneartitle.Append(); waitemp = waitemp.Replace($OnTopTitle$, sbneartitle.ToString(); sbneartitle.Remove(0, sbneartitle.ToString().Length); if (waitemp.Contains($HitsTitle$) sbneartitle.Append(); /热门 nearTitledt = DbHelperOleDb.Query(select top 10 case when len(title) + len + then substring(title,1, + len + ) else title end as Title,HtmlPath from article where iscreate=1 and Hits1000 order by Hits desc,updatetime desc).Tables0; for (int i = 0; i nearTitledt.Rows.Count; i+) sbneartitle.AppendFormat(1, Convert.ToString(nearTitledt.RowsiHtmlPath), Convert.ToString(nearTitledt.RowsiTitle); sbneartitle.Append(); waitemp = waitemp.Replace($HitsTitle$, sbneartitle.ToString(); sbneartitle.Remove(0, sbneartitle.ToString().Length); if (waitemp.Contains($Elite$) sbneartitle.Append(); /推荐Elite nearTitledt = DbHelperOleDb.Query(select top 10 case when len(title) + len + then substring(title,1, + len + ) else title end as Title,HtmlPath from article where iscreate=1 and Elite=1 order by updatetime desc).Tables0;for (int i = 0; i nearTitledt.Rows.Count; i+) sbneartitle.AppendFormat(1, Convert.ToString(nearTitledt.RowsiHtmlPath), Convert.ToString(nearTitledt.RowsiTitle); sbneartitle.Append(); waitemp = waitemp.Replace($Elite$, sbneartitle.ToString(); sbneartitle.Remove(0, sbneartitle.ToString().Length); /相关Classid if (waitemp.Contains($ClassTitle$) sbneartitle.Append(); nearTitledt = DbHelperOleDb.Query(select top 10 case when len(title) + len + then substring(title,1, + len + ) else title end as Title,HtmlPath from article where iscreate=1 and classid= + Convert.ToString(dt.Rows0classid) + order by updatetime desc).Tables0; for (int curr = 0; curr nearTitledt.Rows.Count; curr+) sbneartitle.AppendFormat(1, Convert.ToString(nearTitledt.RowscurrHtmlPath), Convert.ToString(nearTitledt.RowscurrTitle); sbneartitle.Append(); waitemp = waitemp.Replace($ClassTitle$, sbneartitle.ToString(); sbneartitle.Remove(0, sbneartitle.ToString().Length); /相关Classid if (waitemp.Contains($LikeTitle$) sbneartitle.Append();DataTable dtlike = zj123.Model.Article.GetLike(artid); for (int likei = 0; likei dtlike.Rows.Count; likei+) sbneartitle.AppendFormat(1, Convert.ToString(dtlike.RowslikeiHtmlPath), Convert.ToString(dtlike.RowslikeiTitle); sbneartitle.Append(); waitemp = waitemp.Replace($LikeTitle$, sbneartitle.ToString(); sbneartitle.Remove(0, sbneartitle.ToString().Length); / #endregion /替换最新的数据 for (int j = 0; j dt.Columns.Count; j+) if (dt.Columnsj.ColumnName.Trim() = Title) string temp1 = ; string temp2 = ; string typefont = Convert.ToString(dt.Rows0TitleFontType); if (typefont = 0) temp1 = ; temp2 = ; else if (typefont = 1) temp1 = ; temp2 = ; else if (typefont = 2) temp1 = ; temp2 = ; else /System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(); /Match match = Regex.Matches(); /reg.Replace(waitemp, Convert.ToString(dt.Rows0dt.Columnsj.ColumnName.Trim(), 1, waitemp.IndexOf($Title$); string temp11 = waitemp.Substring(0, waitemp.IndexOf($Title$) + 8); string temp22 = waitemp.Substring(waitemp.IndexOf($Title$) + 8); temp11 = temp11.Replace($Title$, Convert.ToString(dt.Rows0dt.Columnsj.ColumnName.Trim()+-+Regex.Replace(Regex.Replace(tempclassname,*,),|*,); temp22 = temp22.Replace($Title$, + temp1 + Convert.ToString(dt.Rows0dt.Columnsj.ColumnName.Trim() + temp2 + ); waitemp = temp11 + temp22; temp11 = null;temp22 = null; /waitemp = waitemp.Replace($ + dt.Columnsj.ColumnName.Trim() + $, +temp1+ Convert.ToString(dt.Rows0dt.Columnsj.ColumnName.Trim() +temp2+ ); else if (dt.Columnsj.ColumnName.Trim().ToLower() = hits) waitemp = waitemp.Replace($ + dt.Columnsj.ColumnName.Trim() + $, Convert.ToInt16(dt.Rows0dt.Columnsj.ColumnName.Trim() 1000 ? (热门) : (); else if (dt.Columnsj.ColumnName.Trim().ToLower() = ontop) waitemp = waitemp.Replace($ + dt.Columnsj.ColumnName.Trim() + $, Convert.ToString(dt.Rows0dt.Columnsj.ColumnName.Trim().ToLower() = true ? (置顶) : (); else if (dt.Columnsj.ColumnName.Trim().ToLower() = elite) waitemp = waitemp.Replace($ + dt.Columnsj.ColumnName.Trim() + $, Convert.ToString(dt.Rows0dt.Columnsj.ColumnName.Trim().ToLower().ToString() = true ? (推荐) : (); else waitemp = waitemp.Replace($ + dt.Columnsj.ColumnName.Trim() + $, Convert.ToString(dt.Rows0dt.Columnsj.ColumnName.Trim(); /替换链表信息 /$typejs$waitemp = waitemp.Replace($typejs$, Convert.ToString(dt.Rows0ClassID); /$numjs$ waitemp = waitemp.Replace($numjs$, 10); /$setjs$ waitemp = waitemp.Replace($setjs$,); /js脚本信息 /根据路径生成页面 /路径 检查 string path = System.Web.HttpContext.Current.Request.PhysicalApplicationPath.Trim() + Convert.ToString(dt.Rows0Links) + + Convert.ToDateTime(dt.Rows0CreateTime).ToString(yyyy-MM); if(!Directory.Exists(path) Directory.CreateDirectory(path); string filename = + Convert.ToString(dt.Rows0ArticleID) + .html; using(StreamWriter sw = new StreamWriter(path+filename,false,System.Text.Encoding.GetEncoding(gb2312) sw.Write(waitemp); sw.Flush(); sw.Close(); /修改文章转台 try if (artid = null) return false; int j = int.Parse(artid); catch return false; string sql1 = string.Format(update article set iscreate=1,htmlpath=0 where articleid=1, / + Convert.ToString(dt.Rows0Links).Replace(, /) + / + Convert.ToDateTime(dt.Rows0CreateTime).ToString(yyyy-MM) + filename, artid); DbHelperOleDb.ExecuteSql(sql1); else return false; return succ; / / 生成列表页 / / / public bool MakeList(string classid) int len = Convert.ToInt32(Convert.ToString(System.Configuration.ConfigurationManager.AppSettingstitlelength) ? 20); bool succ = false; try int i = int.Parse(classid); catch return false; DataTable dt = DbHelperOleDb.Query(string.Format(select a.*,b.ClassName,b.Depth,b.OrderBy,b.isTop,b.isList,b.IsLinks,b.Links,b.PicURL,b.ParentID,b.TemplateoutlistId,b.TemplateoutId,b.TemplateinNeiId,b.TemplateinListId,b.keywords,b.description from article a,zone b where a.classid=b.classid and iscreate=1 and a.Status=3 and a.classid=0 order by a.UpdateTime desc,OnTop desc,Elite desc,Hits desc, classid).Tables0; if (dt.Rows.Count 0) string classpath = HttpContext.Current.Request.PhysicalApplicationPath + + Convert.ToString(dt.Rows0Links).Trim(); /读取外模板信息 string templatewai = ; DataTable templatewaidt = DbHelperOleDb.Query(string.Format(select * from template where TemplateID=0, Convert.ToString(dt.Rows0TemplateoutlistId).Tables0; if (templatewaidt.Rows.Count 0) templatewai = Convert.ToString(templatewaidt.Rows0TemplateContent); /根据类型替换标题 string tempclassname = classes.Common.GetP(classid); templatewai = templatewai.Replace($Title$, Convert.ToString(dt.Rows0ClassName).Trim() +-+Regex.Replace(Regex.Replace(tempclassname,*,),*,);templatewai = templatewai.Replace($ClassTitleTop$, Convert.ToString(dt.Rows0ClassName).Trim(); templatewai = templatewai.Replace($ClassName$, tempclassname); templatewai = templatewai.Replace($Keyword$, Convert.ToString(dt.Rows0Keywords).Trim(); templatewai = templatewai.Replace($Description$, Convert.ToString(dt.Rows0Description).Trim(); int zong = dt.Rows.Count; int size = 10; try size = Convert.ToInt16(System.Configuration.ConfigurationManager.AppSettingspagesize); catch size = 10; int pagecount = zong % size = 0 ? (zong / 10) : (zong / 10 + 1); string listcontent = ; DataTable dtlist = DbHelperOleDb.Query(string.Format(select * from template where TemplateID=0, Convert.ToString(dt.Rows0TemplateinListId).Tables0; if (dtlist.Row

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论