分享

asp.net将新闻发布成静态

 wangn 2010-09-16
public void WriteFile(string strText, string content, String source)
{
webUtility.Sql.SqlHelper db = new webUtility.Sql.SqlHelper();
String keys = tbnewskey.Text;
String whe = "";
String tem = "";
foreach (String k in keys.Split('|'))
{
whe += "or title like '%" + k + "%' ";
tem += " " + k;
}
whe = whe.Substring(2);
String strSql = "select top 6 title,times,link from news where " + whe;
DataSet ds = db.GetDataSet(strSql);
String morelist = "<p>相关新闻</p><ul class='anews'>";
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
morelist += "<li class='l1'>·<a href='" + dr["link"].ToString() + "'>" + dr["title"].ToString() + "</a></li><li class='l2'>" + dr["times"].ToString() + "</li>";
}
if (ds.Tables[0].Rows.Count == 6)
{
morelist += "</ul><a class='amore' href='../common/newslist.aspx?key=" + Server.UrlEncode(tem.Substring(1)).ToString() + "'>更多关于 ";
for (int i = 0; i < tbnewskey.Text.Split('|').Length; i++)
{
morelist += " <strong>" + tbnewskey.Text.Split('|')[i] + "</strong>";
}
morelist += " 的新闻>></a>";
}
else
{
morelist += "</ul>";
}

}
else
{
morelist = "<p>暂无相关新闻</p>";
}
String path = HttpContext.Current.Server.MapPath("../news");
System.Text.Encoding code = System.Text.Encoding.GetEncoding("gb2312");

// 读取模板文件
string temp = HttpContext.Current.Server.MapPath("../news/news.htm");
StreamReader sr = null;
StreamWriter sw = null;
string str = "";
try
{
sr = new StreamReader(temp, code);
str = sr.ReadToEnd(); // 读取文件
}
catch (Exception exp)
{
HttpContext.Current.Response.Write(exp.Message);
HttpContext.Current.Response.End();
}
finally
{
sr.Close();
}
String htmlfilename = DateTime.Now.ToString("yyyyMMddHHmmss") + ".html";
// 替换内容
// 这时,模板文件已经读入到名称为str的变量中了
str = str.Replace("$ptitle", strText); //模板页中的$ptitle,即页面标题
str = str.Replace("$title", strText); //模板页中的$title,即标题
str = str.Replace("$content", content);//模板页中的$content,即内容
str = str.Replace("$date", DateTime.Now.ToString("yyyy年MM月dd日 HH:mm"));//模板页中的$date,即发表时间
str = str.Replace("$source", source);//模板页中的$source,即发表时间
str = str.Replace("$morelist", morelist);
str = str.Replace("$username", tbuser.Text.Trim());
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath(@"../xml/news.xml"));
XmlNode xn = doc.SelectSingleNode("//news/node/type[@value='" + ddltype.SelectedValue + "']");
str = str.Replace("$newslink", "<a href='../common/newslist.aspx?tp=" + xn.ParentNode.Attributes["value"].Value + "'>" + xn.ParentNode.Attributes["text"].Value + "</a>");
// 写文件
try
{
sw = new StreamWriter(path + "/" + htmlfilename, false, code);
sw.Write(str);
sw.Flush();
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
}
finally
{
sw.Close();
}
db.SetParameter("@type", SqlDbType.Char, 2, ddltype.SelectedValue);
db.SetParameter("@link", SqlDbType.VarChar, 50, htmlfilename);
db.SetParameter("@newskey", SqlDbType.VarChar, 50, tbnewskey.Text.Trim());
db.SetParameter("@times", SqlDbType.SmallDateTime, 4, DateTime.Now.ToString());
db.SetParameter("@title", SqlDbType.VarChar, 200, tbtitle.Text.Trim());
strSql = "insert into news(type,title,link,times,keys) values(@type,@title,@link,@times,@newskey)";
if (db.ExecuteSql(strSql) == 1)
{
Page.ClientScript.RegisterStartupScript(GetType(), "key", "<script>alertmes('提交成功')</script>");
}
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约