分页类 动态页面生成静态页面。 思路是关键

神奇的人们将这个功能神秘化,感觉太悬了,很NB的技术啊。其实呢,非常简单,思路是关键。

 

这个功能分这么几个关键:

1.页面上的 动态连接连接地址 改 静态页面地址。(News.aspx?id=5 → News.htm?id=5)

2.列表的分页。

2.动态页面 保存为 静态页面。

 

具体说:

 

后台呢,我设置一个开关,可以选择 动态模式 还是 静态模式,

分页类 <wbr>动态页面生成静态页面。 <wbr>思路是关键(肯定是修改数据库的一个字段了)

 ------------------------------------------------------------------------------------------

1.连接地址的改变,<a href='<%# eval_r("id") %>'>标题....</a> 

那我这么写:<a href='<%# CuiNewsUrl( eval_r("id") ) %>' >标题....</a> 

 

    public string CuiNewsUrl(object o)
    {
        if (o == null)
        {
            return "#";
        }
        if (model_Num.Equals("1"))
        {
            return "/News/news" + o.ToString() + ".htm";
        }
        else
        {
            return "News.aspx?disp=" + o.ToString();
        }

    }

 

这个方法不难看懂吧,model_Num是全局变量,来存放动、静模式。

 ------------------------------------------------------------------------------------

2.列表分页。

比如 NewsList.aspx页面,一页显示10条来分页。

  获得总条数,比如58条,

  那么也就是5页+1页,(具体代码不在此熬述)。

  如果是静态模式

 

pageNum 是NewsList?page= 的参数,我点分页里的第一页,我就让NewsList?page=1,我点分页里的第2页,就NewsList?page=2

 

            int Previous = pageNum - 1;
            int Next = pageNum + 1;

            if (Previous == 0)
            {
                Previous = 1;
            }
            if (Next > count)
            {
                Next = count;
            }

           //获得上一页是第几页,下一页是第几页,下面把分页的按钮写出来。

 

fystr.Append("<a href='/News/index" + Previous + ".htm'  title='上一页' style=\"font-family:webdings\">7</a>");
for (int i = 1; i <= count; i++)
{
    if (i == pageNum)
    {
        fystr.Append("&nbsp;<a href='/News/index" + i + ".htm' target='_self'><b>" + i + "</b></a>&nbsp;");
    }
    else
    {
        fystr.Append("&nbsp;<a href='/News/index" + i + ".htm' target='_self'>" + i + "</a>&nbsp;");
    }
}
fystr.Append("<a href='/News/index" + Next + ".htm'  title='下一页' style=\"font-family:webdings\">8</a>");

 

也就出现了这样的效果:分页类 <wbr>动态页面生成静态页面。 <wbr>思路是关键

--------------------------------------------------------------------

3.静态页面生成:

代码就不熬述,注意一点,生成的静态页面存放的文件夹要写对,

比如 Newlist.aspx 里 静态地址是 /News/98.htm

那么在生成静态页面的时候 就将 News.aspx?id=98 生成的静态页面 放在/News/文件夹中。

 

其余的自己琢磨。有问题留言。

posted @ 2009-12-16 11:52  binlunia  阅读(208)  评论(0)    收藏  举报