如何实现网页的分页问题

如何实现网页的分页问题,第1张

这个,Google下就大把样例吧。。。
如果不打算借助框架来实现的话,无非是熟悉熟悉jQuery,利用jQuery来帮你处理Ajax和DHTML。
至于Servlet,就当作一个服务来访问就行了,给它查询和页码参数(GET或POST都行),它返回JSON字符串。
另一种变通做法,是把Servlet换成分页JSP,但这里的分页JSP并不是完整页面,而是仅仅生成<TABLE>节点内容。
然后用jQuery去GET这个JSP,并把所得到的HTML完全替换当前页面的<TABLE>。

AspNet分页控件实现分页功方法/步骤
1、首先来了解AspNet分页控件——AspNetPager以及控件的属性。
CurrentPageIndex//当前页数(页码)
RecordCount //总数据条数
PageSize //每页数据条数
PageCount //总的页数
当然还有一些特别“人性化”的属性可以设置。
2、接下来就是给控件属性赋值就可以了,通过Sql语句查询到数据库中的数据,
SqlDataAdapter ada=new SqlDataAdapter(new SqlCommand(Sql语句,连接数据库对象);
DataSet ds=new DataSet();
adsFill(总数据,开始,结束位置);
此时DataSet——ds就是获得目标页的数据,也仅仅是获得需要的数据。
3、最后需要将查询到的数据显示到前台页面,通过绑定数据源控件,常用的Repeater控件就可以循环显示数据。
repeaterDataSource=数据;
repeaterDataBind();
Repeater控件还有很多实用功能,越学越深,越研越深。
4、AspNet分页控件还可以设置分页的首页、上一页、下一页、尾页在前台显示的链接文本。这里只是提及简单功能,深入研究剖析其原理就更得心应手了。
资料来源:>这个很简单啊,如果总记录数除以每页的记录数正好除尽的话,那么最大页数就是总记录数除以每页的记录数,否则就是总记录数除以每页的记录数+1咯,例如总记录数为100条,每页是20条,那么分为5页(100/20),如果总记录数为101条,那么应该分为(101/20+1)也就是6页,有问题吗

分页
如果我用存储过程和Javascript的话会这样:
存储过程实现搜索所需数据的第Start列到End列内容,其中Start和End为页面上传入的参数
如果每页定为10条记录,那么每次传入的参数为start10和(start+1)10,他们分别是存储过程的Start和End参数
当页面上点击下一页或上一页或首页末页的时候,用Javascript来改变参数的值,实现动态翻页的效果
我也是学了一段时间的Java,也写过翻页,这就是我写翻页的思路,希望能帮到你

我这里有一个存储过程,很长很长啊。
--别看他很长,但是效率很高。5000万条数据亲测。
--不知道你用什么变成语言。这里就不不写调用方法了。
CREATE proc newgetpage
(--默认分页主键为id
@tblName nvarchar(128), --表名称列表
@PageSize int=10, --页尺寸
@PageIndex int=1, --当前页
@fields nvarchar(4000)='', --查询字段列表
@fldname nvarchar(50), --主键字段名
@fldorder bit=1, --主键排序方式,0asc,非零desc
@FirstfldName nvarchar(50)='', --主排序字段名,非主键,有重复值
@FirstfldOrder bit=1, --主字段排序方式
@SecondfldName nvarchar(50)='', --副排序字段名,非主键,有重复值
@SecondfldOrder bit=1, --副字段排序方式
@strWhere nvarchar(1000)='', --查询条件
@Iscount bit=0 --返回记录总数,非0则返回
)
as
declare @strsql nvarchar(4000) --主语句
declare @strtmp nvarchar(500) --临时变量
declare @strorder nvarchar(500) --总排序方式
declare @stropporder nvarchar(500) --总排序的反方式
declare @strorderfldlist nvarchar(500) --所有要排序的字段序列
declare @selectfld nvarchar(500) --选择主键page
declare @selectfirst nvarchar(500) --选择主排序page
declare @selectsecond nvarchar(500) --选择副排序page
//
declare @strwheretmp nvarchar(500) --临时where变量
if @strwhere!=''
set @strwheretmp=' where '
else
set @strwheretmp=''
//
set @strsql=''
set @strtmp=''
set @strorder=''
set @stropporder=''
set @strorderfldlist=''
set @selectfld=''
set @selectfirst=''
set @selectsecond=''
if @pagesize<1
set @pagesize=10
if @pageindex<1
set @pageindex=1
if @fields=''
set @fields=''
if @FirstfldName=''
set @FirstfldName=''
if @SecondfldName=''
set @SecondfldName=''
--------------------------------bengin
----------总排序方式
if @fldorder!=0
begin
-----正排序
set @strorder=@fldname + ' desc '
if @secondfldname!=''
if @secondfldorder!=0
set @strorder=@secondfldname + ' desc,'+@strorder
else
set @strorder=@secondfldname + ' asc,'+@strorder
if @firstfldname!=''
if @firstfldorder!=0
set @strorder=@firstfldname + ' desc,'+@strorder
else
set @strorder=@firstfldname + ' asc,'+@strorder
-----反排序
set @stropporder=@fldname + ' asc '
if @secondfldname!=''
if @secondfldorder!=0
set @stropporder=@secondfldname + ' asc,'+@stropporder
else
set @stropporder=@secondfldname + ' desc,'+@stropporder
if @firstfldname!=''
if @firstfldorder!=0
set @stropporder=@firstfldname + ' asc,'+@stropporder
else
set @stropporder=@firstfldname + ' desc,'+@stropporder
end
else
begin
-----正排序
set @strorder=@fldname + ' asc '
if @secondfldname!=''
if @secondfldorder!=0
set @strorder=@secondfldname + ' desc,'+@strorder
else
set @strorder=@secondfldname + ' asc,'+@strorder
if @firstfldname!=''
if @firstfldorder!=0
set @strorder=@firstfldname + ' desc,'+@strorder
else
set @strorder=@firstfldname + ' asc,'+@strorder
-----反排序
set @stropporder=@fldname + ' desc '
if @secondfldname!=''
if @secondfldorder!=0
set @stropporder=@secondfldname + ' desc,'+@stropporder
else
set @stropporder=@secondfldname + ' asc,'+@stropporder
if @firstfldname!=''
if @firstfldorder!=0
set @stropporder=@firstfldname + ' desc,'+@stropporder
else
set @stropporder=@firstfldname + ' asc,'+@stropporder
end
set @stropporder=' order by '+@stropporder
set @strorder=' order by '+@strorder +' '
---------总排序方式end
---------总排序字段序列
set @strorderfldlist='id'
if @firstfldname!=''
begin
set @strorderfldlist=@firstfldname+','+@strorderfldlist
if @secondfldname!=''
set @strorderfldlist=@secondfldname+','+@strorderfldlist
end
---------总排序字段序列end
if @Firstfldname!=''
-------若主排序字段不空,则按主排序字段排序,
begin
if @fldorder!=0
set @strTmp = '<=(select top 1'
else
set @strTmp = '>=(select top 1'
set @selectfld=@fldname + replace(@strtmp,'=','')+'('+@fldname+')from(select top ' + str((@PageIndex-1)@PageSize)
+ ' '+@strorderfldlist +' from '+@tblname+' '+@strwheretmp+@strwhere +@strorder
+')as tbltmp '+ @stropporder +')'
if @firstfldname!=''
set @selectfirst=' and '+@firstfldname + @strtmp+'('+@firstfldname+')from(select top ' + str((@PageIndex-1)@PageSize)
+ ' '+@strorderfldlist +' from '+@tblname+' '+@strwheretmp+@strwhere +@strorder
+')as tbltmp '+ @stropporder +')'
if @secondfldname!=''
set @selectsecond=' and '+@secondfldname + @strtmp+'('+@secondfldname+')from(select top ' + str((@PageIndex-1)@PageSize)
+ ' '+@strorderfldlist +' from '+@tblname+' '+@strwheretmp+@strwhere +@strorder
+')as tbltmp '+ @stropporder +')'
------------多字段排序代码
set @strSQL = 'select top ' + str(@PageSize) + ' '+@fields+' from '
+ @tblName + ' where ' + @selectfld + @selectfirst+ @selectsecond+ @strOrder

if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' '+@fields+' from '
+ @tblName + ' where ' + @selectfld + @selectfirst+ @selectsecond+' and ' + @strWhere + ' ' + @strOrder
------------多字段排序代码end
end
-------若主排序字段不空,则按主排序字段排序,end
else
-------若主排序字段为空,则按主键排序,
begin
if charindex('',@fldname)>0
set @selectfld=substring(@fldname,charindex('',@fldname)+1,len(@fldname))
else
set @selectfld=@fldname
if @fldorder!=0
begin
set @strTmp = '<(select top 1'
set @strOrder = ' order by ' + @fldName +' desc'
set @stropporder=' order by '+@selectfld +' asc'
end
else
begin
set @strTmp = '>(select top 1'
set @strOrder = ' order by ' + @fldName +' asc'
set @stropporder=' order by '+@selectfld +' desc '
end

set @strSQL = 'select top ' + str(@PageSize) + ' '+@fields+' from '
+ @tblName + ' where ' + @fldName + '' + @strTmp + '('
+ @selectfld + ') from (select top ' + str((@PageIndex-1)@PageSize) + ' '
+ @fldName + ' from ' + @tblName + '' + @strOrder + ') as tblTmp '+@stropporder +')'
+ @strOrder

if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' '+@fields+' from '
+ @tblName + ' where ' + @fldName + '' + @strTmp + '('
+ @selectfld + ') from (select top ' + str((@PageIndex-1)@PageSize) + ' '
+ @fldName + ' from ' + @tblName + ' where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp '+@stropporder +') and ' + @strWhere + ' ' + @strOrder
end
-------若主排序字段为空,则按主键排序,end
if @PageIndex = 1
begin
set @strTmp = ''
if @strWhere != ''
set @strTmp = ' where ' + @strWhere
set @strSQL = 'select top ' + str(@PageSize) + ' '+@fields+' from '
+ @tblName + '' + @strTmp + ' ' + @strOrder
end
if @IsCount != 0
begin
set @strSQL = 'select count() as Total from ' + @tblName + ''
if @strWhere!=''
set @strSQL='select count() as Total from '+@tblName +' where ' +@strWhere
end
--print @strsql
exec (@strSQL)
GO

1,答
select into B库table_b from A库table_a
2,答
select into A库new_table from A库table_a left outer join B库table_b on A库table_aname=B库table_bname and A库table_aText=B库table_btext
delete from A库table_a left outer join A库new_table on A库table_aname=A库new_tablename and A库table_aText=A库new_tabletext
delete from B库table_b left outer join A库new_table on b库table_bname=A库new_tablename and b库table_bText=A库new_tabletext
3 答
select from (select top 10 from (select top 100 from 表 )as a) as b
4 答
select into 表c from 表A
union all
select into 表c from 表B
试试如果不对请指正。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12984351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存