这几天一直在学习生成静态页面的知识,现在贴一段生成静态页面的处理类。不足之处请大家指正。
CreateHtml类
internal void CreatHtml()
{
string sql = "select TID, TITLE,ANAME,CREATETIME,TXT from tb_ft order by tid asc";
DataTable dt = db.getArticles(sql);
string tmpHtml = System.Web.HttpContext.Current.Server.MapPath("temp.htm");
for (int i = 0; i < dt.Rows.Count; i++)
{
StringBuilder htmltext = getMartherBode(tmpHtml);//取模板页
////----------替换htm里的标记为你想加的内容
htmltext.Replace("$htmlformat[0]", System.Web.HttpContext.Current.Server.HtmlDecode(dt.Rows[i][1].ToString()));
htmltext.Replace("$htmlformat[1]", dt.Rows[i][2].ToString());
htmltext.Replace("$htmlformat[2]", dt.Rows[i][3].ToString());
htmltext.Replace("$htmlformat[3]", System.Web.HttpContext.Current.Server.HtmlDecode(dt.Rows[i][4].ToString()));// Server.HtmlDecode(dt.Rows[i][4].ToString()));
// System.Web.HttpContext.Current.Server.HtmlDecode
//----------生成htm文件------------------――
WriteHtml(dt.Rows[i][0].ToString(), htmltext);
}
}
private static void WriteHtml(string i, StringBuilder htmltext)
{
try
{
using (StreamWriter sw = new StreamWriter(System.Web.HttpContext.Current.Server.MapPath("html/news_" + i + ".html"), false, System.Text.Encoding.GetEncoding("GB2312")))
{
sw.WriteLine(htmltext);
sw.Flush();
sw.Close();
}
}
catch (Exception e)
{
throw new Exception(e.ToString());
}
}
private StringBuilder getMartherBode(string tmpHtml)
{
StringBuilder htmltext = new StringBuilder();
try
{
using (StreamReader sr = new StreamReader(tmpHtml))
{
String line;
while ((line = sr.ReadLine()) != null)
{
htmltext.Append(line);
}
sr.Close();
}
}
catch (Exception e)
{
throw new Exception(e.ToString());
}
return htmltext;
}
}
分页处理
if (Request.QueryString["pageIndex"] != null)
{
int i = Convert.ToInt32(Request.QueryString["pageIndex"].ToString());
index = i;
}
total = db.getCount();
int page = 100;
int pagecount = Convert.ToInt32((total / page));
if (index == 1)
{
LinkButton2.Enabled = false;
LinkButton4.Enabled = false;
}
else {
LinkButton2.Enabled = true;
LinkButton3.Enabled = true;
}
if (index == pagecount)
{
LinkButton1.Enabled = false;
LinkButton3.Enabled = false;
}
else {
LinkButton1.Enabled = true;
LinkButton3.Enabled = true;
}
Label1.Text=Label2.Text="总记录数:"+total.ToString()+" 页码:"+pagecount.ToString()+"/"+index.ToString();
dlBind(index);
}
}
private void dlBind(int index)
{
string startid = Convert.ToString((index - 1) * 100 + 1);
int endid1 = index * 100;
string endid = Convert.ToString(endid1);
if (endid1 > total)
{ endid = total.ToString(); }
string sql = "SELECT * FROM "
+ "( SELECT A.*, ROWNUM RN "
+ "FROM (SELECT * FROM allTiziNews) A "
+ "WHERE ROWNUM <= " + endid
+ "order by a.tid asc)"
+ " WHERE RN >= " + startid;
Repeater1.DataSource = db.getArticles(sql);
Repeater1.DataBind();
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
index = index - 1;
Response.Redirect("WebForm1.aspx?pageIndex=" + index);
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
index = index + 1;
Response.Redirect("WebForm1.aspx?pageIndex=" + index);
}
绑定dadalist