怎样把分页程序做到如此效果?

作者&投稿:许厕 (若有异议请与网页底部的电邮联系)
如何实现列表的分页功能~

Private Sub DlistBind(ByVal SqlStr As String, ByVal Dlst As DataList, ByVal PgNum As Integer)
Dim Conn As New SqlConnection(ConnStr)
Conn.Open()
Dim Adpt As New SqlDataAdapter(SqlStr, Conn)
Dim Ds As New DataSet
Adpt.Fill(Ds, "iTable")
Dim TotalRec As Integer = Ds.Tables.Item(0).Rows.Count
ShowTotalRec.Text = "当前共 " & TotalRec & " 部作品"
Dim TotalPage As Integer
If TotalRec < Pagec Then
TotalPage = 1
Else
If TotalRec Mod Pagec 0 Then
TotalPage = TotalRec \ Pagec + 1
Else
TotalPage = TotalRec / Pagec
End If
End If
ShowTotalPage.Text = TotalPage
ShowCurrentPage.Text = PgNum
Dim Tempi As DataTable = Ds.Tables.Item(0).Clone
Dim m, n As Integer
For m = (PgNum - 1) * Pagec To PgNum * Pagec - 1
If m Ds.Tables.Item(0).Rows.Count - 1 Then Exit For
Dim Row As DataRow = Tempi.NewRow()
For n = 0 To Ds.Tables.Item(0).Columns.Count - 1
Row(Ds.Tables.Item(0).Columns(n).ColumnName) = Ds.Tables.Item(0).Rows.Item(m).Item(n)
Next
Tempi.Rows.Add(Row)
Next
Dlst.DataSource = Tempi.DefaultView
Dlst.DataBind()
Conn.Close()
End Sub

通常情况下这是css中的解决方法。
给你个测试页:
(在此之前建议楼主下载苏沈小雨的CSS样式表,如果楼主打算长期做网页的话)



Untitled Page

/*说明:color:blue;表示蓝色。*/
a{margin:0 5px;text-decoration:none;}
a:link{color:gray;}/*链接*/
a:visited{color:gray;}/*己经访问过的链接*/
a:hover{color:blue;}/*当鼠标停在链接上时的样式*/
a:active{color:blue;}/*当链接正在被点击时的样式*/



链接1链接1链接1链接1链接1链接1

title: JSP分页技术实现
summary:使用工具类实现通用分页处理
author: evan_zhao
email: evan_zhao@hotmail.com

目前比较广泛使用的分页方式是将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示。这种方法有两个主要的缺点:一是用户可能看到的是过期数据;二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降。
其它常见的方法还有每次翻页都查询一次数据库,从ResultSet中只取出一页数据(使用rs.last();rs.getRow()获得总计录条数,使用rs.absolute()定位到本页起始记录)。这种方式在某些数据库(如oracle)的JDBC实现中差不多也是需要遍历所有记录,实验证明在记录数很大时速度非常慢。
至于缓存结果集ResultSet的方法则完全是一种错误的做法。因为ResultSet在Statement或Connection关闭时也会被关闭,如果要使ResultSet有效势必长时间占用数据库连接。

因此比较好的分页做法应该是每次翻页的时候只从数据库里检索页面大小的块区的数据。这样虽然每次翻页都需要查询数据库,但查询出的记录数很少,网络传输数据量不大,如果使用连接池更可以略过最耗时的建立数据库连接过程。而在数据库端有各种成熟的优化技术用于提高查询速度,比在应用服务器层做缓存有效多了。

在oracle数据库中查询结果的行号使用伪列ROWNUM表示(从1开始)。例如select * from employee where rownum<10 返回前10条记录。但因为rownum是在查询之后排序之前赋值的,所以查询employee按birthday排序的第100到120条记录应该这么写:
[pre] select * from (
select my_table.*, rownum as my_rownum from (
select name, birthday from employee order by birthday
) my_table where rownum <120
) where my_rownum>=100
[/pre]
mySQL可以使用LIMIT子句:
select name, birthday from employee order by birthday LIMIT 99,20
DB2有rownumber()函数用于获取当前行数。
SQL Server没研究过,可以参考这篇文章:http://www.csdn.net/develop/article/18/18627.shtm

在Web程序中分页会被频繁使用,但分页的实现细节却是编程过程中比较麻烦的事情。大多分页显示的查询操作都同时需要处理复杂的多重查询条件,sql语句需要动态拼接组成,再加上分页需要的记录定位、总记录条数查询以及查询结果的遍历、封装和显示,程序会变得很复杂并且难以理解。因此需要一些工具类简化分页代码,使程序员专注于业务逻辑部分。下面是我设计的两个工具类:
PagedStatement 封装了数据库连接、总记录数查询、分页查询、结果数据封装和关闭数据库连接等操作,并使用了PreparedStatement支持动态设置参数。
RowSetPage 参考PetStore的page by page iterator模式, 设计RowSetPage用于封装查询结果(使用OracleCachedRowSet缓存查询出的一页数据,关于使用CachedRowSet封装数据库查询结果请参考JSP页面查询显示常用模式)以及当前页码、总记录条数、当前记录数等信息, 并且可以生成简单的HTML分页代码。
PagedStatement 查询的结果封装成RowsetPage。

下面是简单的使用示例:

//DAO查询数据部分代码:

public RowSetPage getEmployee(String gender, int pageNo) throws Exception{
String sql="select emp_id, emp_code, user_name, real_name from employee where gender =?";
//使用Oracle数据库的分页查询实现,每页显示5条
PagedStatement pst =new PagedStatementOracleImpl(sql, pageNo, 5);
pst.setString(1, gender);
return pst.executeQuery();
}

//Servlet处理查询请求部分代码:


int pageNo;
try{
//可以通过参数pageno获得用户选择的页码
pageNo = Integer.parseInt(request.getParameter("pageno") );
}catch(Exception ex){
//默认为第一页
pageNo=1;
}
String gender = request.getParameter("gender" );
request.setAttribute("empPage", myBean.getEmployee(gender, pageNo) );


//JSP显示部分代码
<%@ page import = "page.RowSetPage"%>

<script language="javascript">
function doQuery(){
form1.actionType.value="doQuery";
form1.submit();
}
</script>

<form name=form1 method=get>
<input type=hidden name=actionType>
性别:
<input type=text name=gender size=1 value="<%=request.getParameter("gender")%>">
<input type=button value=" 查询 " onclick="doQuery()">
<%
RowSetPage empPage = (RowSetPage)request.getAttribute("empPage");
if (empPage == null ) empPage = RowSetPage.EMPTY_PAGE;
%>

<table cellspacing="0" width="90%">
<tr> <td>ID</td> <td>代码</td> <td>用户名</td> <td>姓名</td> </tr>
<%
javax.sql.RowSet empRS = (javax.sql.RowSet) empPage.getRowSet();
if (empRS!=null) while (empRS.next() ) {
%>
<tr>
<td><%= empRS.getString("EMP_ID")%></td>
<td><%= empRS.getString("EMP_CODE")%></td>
<td><%= empRS.getString("USER_NAME")%></td>
<td><%= empRS.getString("REAL_NAME")%></td>
</tr>
<%
}// end while
%>
<tr>
<%
//显示总页数和当前页数(pageno)以及分页代码。
//此处doQuery为页面上提交查询动作的javascript函数名, pageno为标识当前页码的参数名
%>
<td colspan=4><%= empPage .getHTML("doQuery", "pageno")%></td>
</tr>
</table>
</form>

效果如图:

因为分页显示一般都会伴有查询条件和查询动作,页面应已经有校验查询条件和提交查询的javascript方法(如上面的doQuery),所以RowSetPage.getHTML()生成的分页代码在用户选择新页码时直接回调前面的处理提交查询的javascript方法。注意在显示查询结果的时候上次的查询条件也需要保持,如<input type=text name=gender size=1 value="<%=request.getParameter("gender")%>">。同时由于页码的参数名可以指定,因此也支持在同一页面中有多个分页区。
另一种分页代码实现是生成每一页的URL,将查询参数和页码作为QueryString附在URL后面。这种方法的缺陷是在查询条件比较复杂时难以处理,并且需要指定处理查询动作的servlet,可能不适合某些定制的查询操作。
如果对RowSetPage.getHTML()生成的默认分页代码不满意可以编写自己的分页处理代码,RowSetPage提供了很多getter方法用于获取相关信息(如当前页码、总页数、 总记录数和当前记录数等)。
在实际应用中可以将分页查询和显示做成jsp taglib, 进一步简化JSP代码,屏蔽Java Code。

附:分页工具类的源代码, 有注释,应该很容易理解。

1.Page.java
2.RowSetPage.java(RowSetPage继承Page)
3.PagedStatement.java
4.PagedStatementOracleImpl.java(PagedStatementOracleImpl继承PagedStatement)

您可以任意使用这些源代码,但必须保留author evan_zhao@hotmail.com字样

///////////////////////////////////
//
// Page.java
// author: evan_zhao@hotmail.com
//
///////////////////////////////////

package page;

import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

/**
* Title: 分页对象<br>
* Description: 用于包含数据及分页信息的对象<br>
* Page类实现了用于显示分页信息的基本方法,但未指定所含数据的类型,
* 可根据需要实现以特定方式组织数据的子类,<br>
* 如RowSetPage以RowSet封装数据,ListPage以List封装数据<br>
* Copyright: Copyright (c) 2002 <br>
* @author evan_zhao@hotmail.com <br>
* @version 1.0
*/
public class Page implements java.io.Serializable {
public static final Page EMPTY_PAGE = new Page();
public static final int DEFAULT_PAGE_SIZE = 20;
public static final int MAX_PAGE_SIZE = 9999;

private int myPageSize = DEFAULT_PAGE_SIZE;

private int start;
private int avaCount,totalSize;
private Object data;

private int currentPageno;
private int totalPageCount;

/**
* 默认构造方法,只构造空页
*/
protected Page(){
this.init(0,0,0,DEFAULT_PAGE_SIZE,new Object());
}

/**
* 分页数据初始方法,由子类调用
* @param start 本页数据在数据库中的起始位置
* @param avaCount 本页包含的数据条数
* @param totalSize 数据库中总记录条数
* @param pageSize 本页容量
* @param data 本页包含的数据
*/
protected void init(int start, int avaCount, int totalSize, int pageSize, Object data){

this.avaCount =avaCount;
this.myPageSize = pageSize;

this.start = start;
this.totalSize = totalSize;

this.data=data;

//System.out.println("avaCount:"+avaCount);
//System.out.println("totalSize:"+totalSize);
if (avaCount>totalSize) {
//throw new RuntimeException("记录条数大于总条数?!");
}

this.currentPageno = (start -1)/pageSize +1;
this.totalPageCount = (totalSize + pageSize -1) / pageSize;

if (totalSize==0 && avaCount==0){
this.currentPageno = 1;
this.totalPageCount = 1;
}
//System.out.println("Start Index to Page No: " + start + "-" + currentPageno);
}

public Object getData(){
return this.data;
}

/**
* 取本页数据容量(本页能包含的记录数)
* @return 本页能包含的记录数
*/
public int getPageSize(){
return this.myPageSize;
}

/**
* 是否有下一页
* @return 是否有下一页
*/
public boolean hasNextPage() {
/*
if (avaCount==0 && totalSize==0){
return false;
}
return (start + avaCount -1) < totalSize;
*/
return (this.getCurrentPageNo()<this.getTotalPageCount());
}

/**
* 是否有上一页
* @return 是否有上一页
*/
public boolean hasPreviousPage() {
/*
return start > 1;
*/
return (this.getCurrentPageNo()>1);
}

/**
* 获取当前页第一条数据在数据库中的位置
* @return
*/
public int getStart(){
return start;
}

/**
* 获取当前页最后一条数据在数据库中的位置
* @return
*/
public int getEnd(){
int end = this.getStart() + this.getSize() -1;
if (end<0) {
end = 0;
}
return end;
}

/**
* 获取上一页第一条数据在数据库中的位置
* @return 记录对应的rownum
*/
public int getStartOfPreviousPage() {
return Math.max(start-myPageSize, 1);
}

/**
* 获取下一页第一条数据在数据库中的位置
* @return 记录对应的rownum
*/
public int getStartOfNextPage() {
return start + avaCount;
}

/**
* 获取任一页第一条数据在数据库中的位置,每页条数使用默认值
* @param pageNo 页号
* @return 记录对应的rownum
*/
public static int getStartOfAnyPage(int pageNo){
return getStartOfAnyPage(pageNo, DEFAULT_PAGE_SIZE);
}

/**
* 获取任一页第一条数据在数据库中的位置
* @param pageNo 页号
* @param pageSize 每页包含的记录数
* @return 记录对应的rownum
*/
public static int getStartOfAnyPage(int pageNo, int pageSize){
int startIndex = (pageNo-1) * pageSize + 1;
if ( startIndex < 1) startIndex = 1;
//System.out.println("Page No to Start Index: " + pageNo + "-" + startIndex);
return startIndex;
}

/**
* 取本页包含的记录数
* @return 本页包含的记录数
*/
public int getSize() {
return avaCount;
}

/**
* 取数据库中包含的总记录数
* @return 数据库中包含的总记录数
*/
public int getTotalSize() {
return this.totalSize;
}

/**
* 取当前页码
* @return 当前页码
*/
public int getCurrentPageNo(){
return this.currentPageno;
}

/**
* 取总页码
* @return 总页码
*/
public int getTotalPageCount(){
return this.totalPageCount;
}

/**
*
* @param queryJSFunctionName 实现分页的JS脚本名字,页码变动时会自动回调该方法
* @param pageNoParamName 页码参数名称
* @return
*/
public String getHTML(String queryJSFunctionName, String pageNoParamName){
if (getTotalPageCount()<1){
return "<input type='hidden' name='"+pageNoParamName+"' value='1' >";
}
if (queryJSFunctionName == null || queryJSFunctionName.trim().length()<1) {
queryJSFunctionName = "gotoPage";
}
if (pageNoParamName == null || pageNoParamName.trim().length()<1){
pageNoParamName = "pageno";
}

String gotoPage = "_"+queryJSFunctionName;

StringBuffer html = new StringBuffer("\n");
html.append("<script language=\"Javascript1.2\">\n")
.append("function ").append(gotoPage).append("(pageNo){ \n")
.append( " var curPage=1; \n")
.append( " try{ curPage = document.all[\"")
.append(pageNoParamName).append("\"].value; \n")
.append( " document.all[\"").append(pageNoParamName)
.append("\"].value = pageNo; \n")
.append( " ").append(queryJSFunctionName).append("(pageNo); \n")
.append( " return true; \n")
.append( " }catch(e){ \n")
// .append( " try{ \n")
// .append( " document.forms[0].submit(); \n")
// .append( " }catch(e){ \n")
.append( " alert('尚未定义查询方法:function ")
.append(queryJSFunctionName).append("()'); \n")
.append( " document.all[\"").append(pageNoParamName)
.append("\"].value = curPage; \n")
.append( " return false; \n")
// .append( " } \n")
.append( " } \n")
.append( "}")
.append( "</script> \n")
.append( "");
html.append( "<table border=0 cellspacing=0 cellpadding=0 align=center width=80%> \n")
.append( " <tr> \n")
.append( " <td align=left><br> \n");
html.append( " 共" ).append( getTotalPageCount() ).append( "页")
.append( " [") .append(getStart()).append("..").append(getEnd())
.append("/").append(this.getTotalSize()).append("] \n")
.append( " </td> \n")
.append( " <td align=right> \n");
if (hasPreviousPage()){
html.append( "[<a href='javascript:").append(gotoPage)
.append("(") .append(getCurrentPageNo()-1)
.append( ")'>上一页</a>] \n");
}
html.append( " 第")
.append( " <select name='")
.append(pageNoParamName).append("' onChange='javascript:")
.append(gotoPage).append("(this.value)'>\n");
String selected = "selected";
for(int i=1;i<=getTotalPageCount();i++){
if( i == getCurrentPageNo() )
selected = "selected";
else selected = "";
html.append( " <option value='").append(i).append("' ")
.append(selected).append(">").append(i).append("</option> \n");
}
if (getCurrentPageNo()>getTotalPageCount()){
html.append( " <option value='").append(getCurrentPageNo())
.append("' selected>").append(getCurrentPageNo())
.append("</option> \n");
}
html.append( " </select>页 \n");
if (hasNextPage()){
html.append( " [<a href='javascript:").append(gotoPage)
.append("(").append((getCurrentPageNo()+1))
.append( ")'>下一页</a>] \n");
}
html.append( "</td></tr></table> \n");

return html.toString();

}
}

///////////////////////////////////
//
// RowSetPage.java
// author: evan_zhao@hotmail.com
//
///////////////////////////////////
package page;

import javax.sql.RowSet;

/**
* <p>Title: RowSetPage</p>
* <p>Description: 使用RowSet封装数据的分页对象</p>
* <p>Copyright: Copyright (c) 2003</p>
* @author evan_zhao@hotmail.com
* @version 1.0
*/

public class RowSetPage extends Page {
private javax.sql.RowSet rs;

/**
*空页
*/
public static final RowSetPage EMPTY_PAGE = new RowSetPage();

/**
*默认构造方法,创建空页
*/
public RowSetPage(){
this(null, 0,0);
}

/**
*构造分页对象
*@param crs 包含一页数据的OracleCachedRowSet
*@param start 该页数据在数据库中的起始位置
*@param totalSize 数据库中包含的记录总数
*/
public RowSetPage(RowSet crs, int start, int totalSize) {
this(crs,start,totalSize,Page.DEFAULT_PAGE_SIZE);
}

/**
*构造分页对象
*@param crs 包含一页数据的OracleCachedRowSet
*@param start 该页数据在数据库中的起始位置
*@param totalSize 数据库中包含的记录总数
*@pageSize 本页能容纳的记录数
*/
public RowSetPage(RowSet crs, int start, int totalSize, int pageSize) {
try{
int avaCount=0;
if (crs!=null) {
crs.beforeFirst();
if (crs.next()){
crs.last();
avaCount = crs.getRow();
}
crs.beforeFirst();
}
rs = crs;
super.init(start,avaCount,totalSize,pageSize,rs);
}catch(java.sql.SQLException sqle){
throw new RuntimeException(sqle.toString());
}
}

/**
*取分页对象中的记录数据
*/
public javax.sql.RowSet getRowSet(){
return rs;
}

}

///////////////////////////////////
//
// PagedStatement.java
// author: evan_zhao@hotmail.com
//
///////////////////////////////////

package page;

import foo.DBUtil;

import java.math.BigDecimal;
import java.util.List;
import java.util.Iterator;
import java.util.Collections;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.Timestamp;
import javax.sql.RowSet;

/**
* <p>Title: 分页查询</p>
* <p>Description: 根据查询语句和页码查询出当页数据</p>
* <p>Copyright: Copyright (c) 2002</p>
* @author evan_zhao@hotmail.com
* @version 1.0
*/
public abstract class PagedStatement {
public final static int MAX_PAGE_SIZE = Page.MAX_PAGE_SIZE;

protected String countSQL, querySQL;
protected int pageNo,pageSize,startIndex,totalCount;
protected javax.sql.RowSet rowSet;
protected RowSetPage rowSetPage;

private List boundParams;

/**
* 构造一查询出所有数据的PageStatement
* @param sql query sql
*/
public PagedStatement(String sql){
this(sql,1,MAX_PAGE_SIZE);
}

/**
* 构造一查询出当页数据的PageStatement
* @param sql query sql
* @param pageNo 页码
*/
public PagedStatement(String sql, int pageNo){
this(sql, pageNo, Page.DEFAULT_PAGE_SIZE);
}

/**
* 构造一查询出当页数据的PageStatement,并指定每页显示记录条数
* @param sql query sql
* @param pageNo 页码
* @param pageSize 每页容量
*/
public PagedStatement(String sql, int pageNo, int pageSize){
this.pageNo = pageNo;
this.pageSize = pageSize;
this.startIndex = Page.getStartOfAnyPage(pageNo, pageSize);
this.boundParams = Collections.synchronizedList(new java.util.LinkedList());

this.countSQL = "select count(*) from ( " + sql +") ";
this.querySQL = intiQuerySQL(sql, this.startIndex, pageSize);
}

/**
*生成查询一页数据的sql语句
*@param sql 原查询语句
*@startIndex 开始记录位置
*@size 需要获取的记录数
*/
protected abstract String intiQuerySQL(String sql, int startIndex, int size);

/**
*使用给出的对象设置指定参数的值
*@param index 第一个参数为1,第二个为2

forntpage
就可以了!

静态网页就用HTML,动态的用PHP,ASP都可以

动态网页就用HTML,动态的用PHP,ASP都可以

forntpage
就可以了!

楼上的厉害啊~~~
学习学习~~~


易语言分页怎么做?
.版本 2 .支持库 iext2 .程序集 窗口程序集1 .程序集变量 物品, 文本型, , "0".程序集变量 页号, 整数型 .程序集变量 页数, 整数型 .子程序 __启动窗口_创建完毕 超级按钮1.标题 = “上一页”超级按钮2.标题 = “下一页”物品 = { “物品1”, “物品2”, “物品3”, “物品...

java中如何实现分页显示
使用Vector进行分页 还见过另一些实现分页的类,是先将所有记录都select出来,然后将ResultSet中的数据都get出来,存入Vector等集合类中,再根据所需分页的大小,页数,定位到相应的位置,读取数据。或者先使用前面提到的两种分页方法,取得所需的页面之后,再存入Vector中。 扔开代码的效率不说,单是从程序结构和使用的方便性...

网站如何分页网站如何分页打印
一个网站,如何设置分页 可以用服务器端的程序实现,也可以把你所谓的分页文件放在服务器端的一个目录下。打开这个页面的方法是把这个文件路径和完整的文件名放在域名\/后面。这个你还不了解,建议你先学。word如何取消按段落分页?word取消按段落分页方法:打开word文档,中间出现段中分页的情况,该如何进行...

ibatis 如何实现分页
ibatis自带的分页方法是程序的假分页,如果要想实现真分页,可以直接在sql语句中写好分页代码,再在程序里传入参数就行了

word2010如何插入分页符?
5. 分页符将被插入到文档中。保存文档并关闭Word应用程序。如果上面的方法都不行,您可以尝试升级您的Word应用程序到最新版本或者重新安装Word程序。首先打开需要输入分页符的word文档,然后把鼠标放在插入换页符的地方。2、然后在页面菜单栏里找到“页面布局”这个选项,在选项里找到“分隔符”选项点击打开...

ppt怎么自动分页
1、打开PPT,点击画布的空白处,然后点击顶部菜单栏的“插入”。2、然后,点击“图片”—“分页插入图片”。3、然后找到要插入的图片集(图片最好分好次序这样插入的时候PPT会按照你的次序来排序)。4、然后,Ctrl+A,全选你的图片——“打开”。5、最后,所有的图片分页都进来了,而且每页一张,都是...

word分页后不自动跳到下一页怎么办
是因为设置问题,解决方法如下:操作设备:戴尔灵越7400 操作系统:win10 操作程序:word2.91 1、首先需要打开word,然后在功能区选择页面布局,如下图所示。2、在页面布局中很容易就可以看到“分栏”的按钮,如下图所示。3、在分栏中选择“更多分栏“,如下图所示。4、在更多分栏中,图中所示的间距...

MySql中查询语句实现分页功能
如果LIMIT m,n不可避免的话,要优化效率,只有尽可能的让m小一下,我们扩展前面的clue做法,还是SELECT * FROM message ORDER BY id DESC,按id降序分页,每页20条,当前是第10页,当前页条目id最大的是2519,最小的是2500;当是第10页的SQL如下:比如要跳到第9页,SQL语句可以这样写:比如要跳...

长图如何分页打印
长图的分页打印,可以使用微软Office套件中的Word软件进行操作。具体步骤如下:1.打开需要打印的长图,在工具栏中选择“视图”选项卡,勾选“分页显示”。2.在“页面布局”选项卡中,点击“分隔符”按钮,选择“连续分隔符”或“下一页分隔符”,将长图分隔成多个页面。3.在每个分隔出来的页面中,...

超级长图怎样插入word分页显示长图在word如何分页
6、需要注意的是,一张图片是无法跨页显示的,如果想要将同一张图片跨页显示,需要将这张图片裁成两张,即使用word里面的“裁剪”程序选项,然后将下一张图在下一页显示即可。在Word中,如果要插入超级长图并进行分页显示,可以按照以下步骤操作:1. 在Word文档中找到需要插入超级长图的位置,然后从“...

班戈县18245696944: 分页程序怎么才能做到高效率? - 技术
席盆克痒: 我认为一般情况下,用limit分页不好,重复操作数据库效率是最低的.你可以实现把数据读取的临时xml文件的方式,进行分页.然后跟踪数据状态,在后台更新数据的时候自动更新xml,这样你可以每次读取数据的时候直接读取xml文件,不用每次查询数据库,效率就可以一定程度的提高.本人愚见,敬请高手指点.

班戈县18245696944: 这样的分页效果怎么实现
席盆克痒: <table> for i=1 to 3 <tr> for k=1 to 2 response.write("<td>图片</td>+<td>文字说明</td>) next </tr> next </table

班戈县18245696944: php分页效果怎么实现 -
席盆克痒: 你那上面的效果只是 CSS样式而已而分页的核心代码是用SQL查询语句实现的.PHP作为开源服务器端语言,是不像微软的IIS.ASP那么方便、简单的ASP有RS对象分页,PHP只能靠查询语句//extends 继承 page可以理解为子类 db是父类 ...

班戈县18245696944: 网页中,分页效果怎么用代码实现?如图所示 -
席盆克痒: 不清楚你的网站是用什么实现的,现在提供两种方法:一、动态网页:这里有一段PHP代码,供参考,我这边运行成功:1.显示内容部分 <?php $page=$_GET["page"...

班戈县18245696944: jsp分页页码如何处理!实现效果如图!求代码!
席盆克痒: 程序判断 如果大于10 就显示10页 如果小于10 就显示实际页码, ...分页自有一套算法,主要变量就是分页单位 跟当前页面

班戈县18245696944: 怎么实现CSS+DIV分页效果 -
席盆克痒: css+div只能做分页的样式,就是页面效果,不能负责让分页实现,要实现至少需要运用到javascript脚本或其他的!你可以去查查xml的数据岛功能,一个html页面链接到一个xml数据,自动实现分页,很方便很好用,不过只有ie可以显示!

班戈县18245696944: 用javascript实现分页,显示效果类似百度下边的分页效果....... -
席盆克痒: 其他的全部隐藏;none&quot.getElementById(“divid”).display=="" 隐藏用document.getElementById(“divid”).style.display==&quot,点下一页时显示下一个div把上一个隐藏 jquery中显示用show().style,隐藏用hide() 直接用js显示用document,刚开始只把第一个div显示把每个“页面”都包在一个div里

班戈县18245696944: 如何用php实现分页效果 -
席盆克痒: 将原代码(所有用到分页的代码我都加有注释)和设计页面和IE浏览后的页面都传给你,以方便你详查.如果这里不好看,就将此代码复制到Dreamweaver编辑器里,加上你自己的数据库.我不知道你用的是什么编辑器,我用的是Dreamweaver...

班戈县18245696944: 想要实现分页效果有没有什么好的方法 -
席盆克痒: 用了 jquery.pagination.js 按照里面的方法写 可是分页出来 每页只有一条 请问是为什么 上一页 1 2 3 4 ... 8 下一页$(function(){ //此demo通过Ajax加载分页元素 var initPagination = function() { var num_entries = $("#hiddenresult div.main")....

班戈县18245696944: .net中 怎样做分页效果最好? -
席盆克痒: 最好是自己写一个分页存储过程,通过存储过程来实现分页,这样的话性能是最好的,效率是最高的

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网