如何实现生成html分页

artcodeman 2009-04-10 01:24:28
如何用asp.net2.0 c# 实现新闻分页,每个分页都生成html文件
...全文
1965 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
artcodeman 2009-04-11
  • 打赏
  • 举报
回复
make.getPageNav(i, PCount, id + "_")

make从什么地方来的
oo00gg99 2009-04-10
  • 打赏
  • 举报
回复
可以做个HTML模板 用I/O读取后 替换内容 然后再生产SHTML
分页判断正文字数 和生产多少页
极地_雪狼 2009-04-10
  • 打赏
  • 举报
回复
比较关心模板技术。
syc958 2009-04-10
  • 打赏
  • 举报
回复
如果你为了这点小事再弄成 伪静态的那性能就更差了....用ajax是首选....
syc958 2009-04-10
  • 打赏
  • 举报
回复
其实个人感觉你生成这个分页没有必要,如果你数据量很大,难道你添加一条信息或删除一条信息都要重新再生成一次吗?再说了就算你生成了,查找时你不还是得用动态的....所以个人感觉没有必要把分页这个弄成静态的...只要把详细页面生成静态的就成了!当然如果你觉得列表页后缀不是html 的心里不爽,你完全可以在html页面里用ajax来实现呀....
zk20716 2009-04-10
  • 打赏
  • 举报
回复
wStr += " and [ID] not in (select top " + pagesize * (i - 1) + " [ID] " + pStr + oStr + ")";
这个sql语句就是读出第一页之后的数据
artcodeman 2009-04-10
  • 打赏
  • 举报
回复
生成第一页可以,关键是第二页的数据是怎么读取出来,然后在写入html文件中
zk20716 2009-04-10
  • 打赏
  • 举报
回复
//分页函数《开始》
public string getPageNav(int iCurrentPage, int iPageCount, string Http)
{
string OutStr = "";

if (iCurrentPage == 1)
{
OutStr += " <font color=\"#666666\">[首页]</font> <font color=\"#666666\">[上一页]</font>";
}
else
{
OutStr += " <a href='" + Http + "1.Htm'><font color=\"#800000\">[首页]</font></a>";
OutStr += " <a href='" + Http + (iCurrentPage - 1) + ".Htm'><font color=\"#800000\">[上一页]</font></a>";
}
OutStr += " ";

if (iCurrentPage < iPageCount)
{
OutStr += "<a href='" + Http + (iCurrentPage + 1) + ".Htm'><font color=\"#800000\">[下一页]</font></a>";
OutStr += " <a href='" + Http + iPageCount + ".Htm'><font color=\"#800000\">[尾页]</font></a>";
}
else
{
OutStr += "<font color=\"#666666\">[下一页]</font> <font color=\"#666666\">[尾页]</font>";
}

OutStr += "  " + iCurrentPage + "/" + iPageCount + "  ";
OutStr += "<INPUT TYPE=text class=iptA size=3 value=" + iCurrentPage + " onmouseover='this.focus();this.select()' NAME=PGNumber> <INPUT TYPE=button id=button1 name=button1 class=btnA value=GO onclick=\"if(document.all.PGNumber.value>0 && document.all.PGNumber.value<=" + iPageCount + "){window.location='" + Http + "'+document.all.PGNumber.value+'.Htm'}\" onmouseover='this.focus()' onfocus='this.blur()'> ";


return OutStr;
}
//分页函数《结束》
zk20716 2009-04-10
  • 打赏
  • 举报
回复
新闻列表静态分页,
若没10条为1页,读出新闻数量,除以10得到的数值进行循环,
用sql读出数据 进行分页
//得到新闻数量
RCount = Convert.ToInt32(GetValueByKey("count(id)", "tbnews", pStr));

pStr = "from [tbnews] where site='" + site + "' and " + pStr;

if (RCount % pagesize == 0)
PCount = RCount / pagesize;
else
PCount = (RCount / pagesize) + 1;

if (PCount > 0)
{
for (int i = 1; i < PCount + 1; i++)
{

if (data.GetTableVaule("tbSiteSort", "id", "pid", Convert.ToInt32(id)) == "no")
{
string wStr = "select top " + pagesize + " [ID],sort,title,color,Topsign,sdate,content,picture,ftitle " + pStr;

if (i == 1)
wStr += oStr;
else
{
wStr += " and [ID] not in (select top " + pagesize * (i - 1) + " [ID] " + pStr + oStr + ")";
wStr += oStr;
}

DataTable dt1 = data.GetDataTable(wStr);
if (dt.Rows.Count > 0)
{
strhttp = strhttp1.Replace("{$body$}", make.NList(dt1, 85));
}
}

strhttp = strhttp.Replace("{$PageNumNav$}", make.getPageNav(i, PCount, id + "_"));
path = Server.MapPath("/zh/news/" + dt.Rows[0][1] + "");

if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}

if (i == 1)
{
newHtml = Request.PhysicalApplicationPath + "\\/zh/news/" + dt.Rows[0][1] + "\\default.Htm";
sw = new System.IO.StreamWriter(newHtml, false, System.Text.Encoding.GetEncoding("GB2312"));
sw.Write(strhttp);
sw.Close();
}
newHtml = Request.PhysicalApplicationPath + "\\/zh/news/" + dt.Rows[0][1] + "/\\" + id + "_" + i + ".Htm";
sw = new System.IO.StreamWriter(newHtml, false, System.Text.Encoding.GetEncoding("GB2312"));
sw.Write(strhttp);
sw.Close();


}
}
mingch516548094 2009-04-10
  • 打赏
  • 举报
回复
帮定。
程序漫步 2009-04-10
  • 打赏
  • 举报
回复
UP ~~
artcodeman 2009-04-10
  • 打赏
  • 举报
回复
通过伪静态实现分页 可以不是伪静态的吗
踏雪听雨 2009-04-10
  • 打赏
  • 举报
回复
同意楼上两位
周公 2009-04-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
添加新闻时,通过模板生成静态页。保存文件名,通过伪静态实现分页
参考
http://www.cnblogs.com/supers/articles/1276387.html
[/Quote]
基本就是这个思路了。生成目录的静态页时,每次录入新的文章都会将所有的目录页生成,如果录入非常频繁,效果不会太好。
wuyq11 2009-04-10
  • 打赏
  • 举报
回复
添加新闻时,通过模板生成静态页。保存文件名,通过伪静态实现分页
参考
http://www.cnblogs.com/supers/articles/1276387.html

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧