动态页面生成静态页面的方法
在动态页面上有一个按钮,我想点击该按钮时(比如该按钮的名称为:生成静态页面)将动态页面生成静态页面,想求各位高手能给我详细的代码,以及事件代码。初步的代码我有 protected void gvnews_RowCommand(object sender, GridViewCommandEventArgs e)
{
string conStr = "Server=(local);DataBase=ZhongXiangDB.mdb;Uid=admin;Pwd=hzzx123456";
string cmdtxt = "select * from newsinfo";
OleDbConnection conn = new OleDbConnection(conStr);
OleDbCommand cmd = new OleDbCommand(cmdtxt, conn);
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
WriteFile(dr["newstitle"].ToString(), dr["newssource"].ToString(), dr["newscontent"].ToString());
Response.Write("<script>alert('静态页生成成功!');location='Default.aspx'</script>");
}
dr.Close();
}
public bool WriteFile(string strText, string newssource, string newscontent)
{
string OutPutPath = HttpContext.Current.Server.MapPath("/news/");
Encoding encoding = Encoding.GetEncoding("gb2312");
// 读取模板文件
string ModelTemp = HttpContext.Current.Server.MapPath("/news/text.html");
StreamReader sr = null;
StreamWriter sw = null;
string str = "";
try
{
sr = new StreamReader(ModelTemp, encoding);
str = sr.ReadToEnd(); // 读取文件
}
catch (Exception exp)
{
HttpContext.Current.Response.Write(exp.Message);
HttpContext.Current.Response.End();
sr.Close();
}
string HtmlFilename = DateTime.Now.ToString("yyyyMMddHHmmss_") + ".html";
// 替换内容
str = str.Replace("ShowPageTitle", strText);
str = str.Replace("newstitle", strText); //模板页中的PageArticle
str = str.Replace("newssource", newssource);
str = str.Replace("newscontent", newscontent);
// 写文件
try
{
sw = new StreamWriter(OutPutPath + HtmlFilename, false, encoding);
sw.Write(str);
sw.Flush();
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
}
finally
{
sw.Close();
}
return true;
}