以下文件在我的环境下,成功了,仅供参考:
1.建立模版页:ModelHTML.html
内容如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<title>PageTitle</title>
</head>
<body style="text-align: center">
<table style="width: 700px; height: 601px">
<tr>
<td colspan="3" style="height: 106px" bgcolor="#00cc33">
<span style="font-size: 16pt; color: #3333ff"><strong>广告区</strong></span></td>
</tr>
<tr>
<td bgcolor="#00cc33" style="width: 177px; height: 146px">
</td>
<td colspan="2" rowspan="3" style="margin-top: 0px; vertical-align: top; padding-top: 0px">
<table style="width: 502px">
<tr>
<td colspan="3" style="height: 55px">
</td>
</tr>
<tr>
<td colspan="3" rowspan="2">
<strong>
ArticleTitle </strong>
</td>
</tr>
<tr>
</tr>
<tr>
<td colspan="3" rowspan="1" style="text-align: left; font-size: 9pt;">
ArticleContent
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor="#00cc33" style="width: 177px; height: 182px">
</td>
</tr>
<tr>
<td bgcolor="#00cc33" style="width: 177px; height: 160px">
</td>
</tr>
<tr>
<td bgcolor="#00cc33" colspan="3" style="height: 100px">
</td>
</tr>
</table>
</body>
</html>
2.在后台写一函数:WriteFile(string ArticleTitle, string ArticleContent, string ArticleID)
#region 生成静态页面
public bool WriteFile(string ArticleTitle, string ArticleContent, string ArticleID)
{
string OutPutPath = HttpContext.Current.Server.MapPath("../../newhtml/");//生成存放的文件夹
Encoding encoding = Encoding.GetEncoding("gb2312"); //编码
// 读取模板文件
string ModelTemp = HttpContext.Current.Server.MapPath("ModelHTML.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 = ArticleID + ".html"; //生成文件的文件名
//string HtmlFilename = DateTime.Now.ToString("yyyyMMddHHmmss_") + ArticleID + ".html";
// 替换内容
str = str.Replace("PageTitle", ArticleTitle); //模板页中的PageTitle
str = str.Replace("ArticleTitle", ArticleTitle);
str = str.Replace("ArticleContent", ArticleContent);
// 写文件
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;
}
#endregion
3.调用:
string Nid = e.CommandArgument.ToString();
string sqlstr = "select NTitle,Ntitle2,NContent,NPublisher,NPubTime,NFrom from TNews where Nid =" + e.CommandArgument.ToString(); //读取数据,根据你的环境,修改一下.
Config db = new Config(); //连接数据库.
SqlDataReader dr = db.GetDataReader(sqlstr);
dr.Read();
if (dr.HasRows)
{
WriteFile(dr["NTitle"].ToString(), dr["NContent"].ToString(), Nid.ToString()); //传值
Response.Write("<script>alert('静态页生成成功!');location='NewsList.aspx'</script>");
}