日期:2014-05-18  浏览次数:20423 次

一个栏目列表分页的解决方案
比如有一个模板栏目列表A,一般的显示方法如下:

内容列表:
.lsdjfsjdlf
.sdfsdfsdfsd
.sdfsdfsdf
.sdfsdfsd
总数:98 共30页 每页:15 当前:2 首页 上一页 下一页 尾页

1:如果要显示成上面的样子,我想的是:
getlist()
总数:getcount() 共getC()页 每页:getP() 当前:getcu() get1() get2() get3() get4()

当我执行getlist()时,下面分页的数据放放缓存中,然后页面执行下面的函数时就去取缓存,这样是可以的.

问题是如果是这样显示:
总数:98 共30页 每页:15 当前:2 首页 上一页 下一页 尾页
内容列表:
.lsdjfsjdlf
.sdfsdfsdfsd
.sdfsdfsdf
.sdfsdfsd

这个时候是先执行上面分页的一些函数,而具体的数据在缓存中还没有的,结果就出错啊.

所以问一下各位是如果解决类似于这样的分页的??????

-----
ps:或者大虾们有更好的解决方案吗?

------解决方案--------------------
页面静态化,做模板生成还不如URLRewrite下 
urlRewrite参考 http://www.itjj.net/tech/biancheng/AspNet/20061226/88973.html
希望对你有帮助
------解决方案--------------------
思路没错,按理不会出这样的错误,检查下程序吧
------解决方案--------------------
我说一下我的思路,你把数据取出后放到一个数组中.这样你可以得到数组的长度,再定义一个常量为每页显示的页数.
这样你就可以写一些算法.我们是用AJAX做的.第一次取出数据后放到数组中,点其它页的时候就是一个局部局部刷新.
下面是我们写的代码你参照一下.
//显示"最热形像"DIV
function GetHotActorlist()

if(actorHotArray.length<1)

var url = encodeURI(SBasePath+'/action/actor/GetTopHotActors.aspx');
var pars = encodeURI('');
var myAjax = new Ajax.Request(url,{method: 'get', parameters: pars,onComplete: sGetHotActorlist,onFailure:fGetHotActorlist});
}
else
{
ShowHotActorlistPageContent('1');
}
 
}

//获取"最热形像"信息成功

function sGetHotActorlist(o)
{
  
actorHotArray=new Array();
actorHotArray = MapActorExts(o);
ShowHotActorlistPageContent('1');

}

//显示出最热形像列表
function ShowHotActorlistPageContent(page)
{
 
PageIndex=parseInt(page);
if(PageIndex<1)
PageIndex=1;
var pos=(PageIndex-1)*10;
if(pos>=actorHotArray.length)
{
pos=0;
}

var cStr="";
var end=(pos+10>actorHotArray.length)?actorHotArray.length:pos+10;
for(var i=pos;i<end;i++)
{

cStr += "<div class='listMod'>";
(i%2==0)?cStr += "<div class='modCon1 clearfix'>":cStr += "<div class='modCon clearfix'>";

cStr += "<div class='modPic'><a href='"+SBasePath+"/actor/"+actorHotArray[i].ActorSNO+"/' target='_blank'><img src='"+SBasePath+actorHotArray[i].ShrinkImg +"' width='81' height='81' border='0' class=''/></a></div>";
cStr += "<div class='modText'><span class='date'>"+actorHotArray[i].ActorDate+"</span>"; 
cStr += "<h4><a href='"+SBasePath+"/actor/"+actorHotArray[i].ActorSNO+"/' title='"+actorHotArray[i].Name+"' target='_blank'>" + Getsubstr(actorHotArray[i].Name,50)+"</a></h4>";
cStr += "<p class='Mtext'>介绍:<span class='textL'>"+Getsubstr(actorHotArray[i].ActorDesc,70)+"</span></p>";
cStr += "<p>支持数:<span class='textNo'>"+actorHotArray[i].AgreeCount+"</span>";
cStr += "浏览数:<span class='textNo'>"+actorHotArray[i].ViewCount+"</span></p>";
 

cStr +="<div class='conLine'><div class='work'>"
//+"<a href='#'><img src='"+SBasePath+"/images/right.jpg' border='0' class='rit'/></a>"
+ "<ul><div id