想做一个类似百度图片展示,但是有个问题,就是图片在分页上有个问题;原因是每页显示的图片张数都是不一样,那这样一来我的分页该怎么做。可以说想法、要点、或者结构、提示也行。
真正做控件开发的程序员,随便做这类东西,自己就设计出来了。
所以多多将以前的工作封装成控件/插件,不要什么都从“零”开始写网页。刚看了下百度的图片搜索,每行可能是6张大图,或者5张大图+2张小图(且两张小图的宽度之和等于一张大图的宽度)或者…… 且一页是三行,故觉得可以每次都从数据库中取出12*3=36张图,并保存在队列中,并且依次输出到页面中,且保证每行小图的个数是偶数。暂时不满足要求的图片放到队尾。
此队列保存在session中,在翻页后继续使用该队列。每页显示的图像数量不一样?什么意思我想你应该完全抛弃所谓的“预先规定每页多少图片”那个概念,否则就会越搞越乱。
我相信百度也根本不知道总共有多少页,它的底部的页号列表纯粹是一种“猜测”,例如用当前页上实际显示了多少图片作为“假数据”来估算出大概总共有多少页。
而每一页显示图片其实就很简单了。例如你可以一直使用<span>布局图片,然后当一行所有图片的宽度超过一定限度(例如800像素)的时候,就在最后一个<span>之前插入</p><p>,这就新起了一行。而当行数达到最大行数时,把最后的<span>删除掉,插入</p>即可。
实际上不管是使用asp.net,还是javscript,你自己做一个控件/插件,封装这个逻辑。做一次编程设计,以后不要再纠结这种问题了。