当前页面: 开发资料首页 → JSP 专题 → 急急急!!!在分页中如何这样排序??
急急急!!!在分页中如何这样排序??
摘要: 急急急!!!在分页中如何这样排序??
在分页后,有类似这样的结构
序号 姓名 年龄
5 xx 23
1 xy 21
3 uu 20
每页记录3条。int pageSize=3;
需要点击列名第一次升序,第二次降序。我采用重新从数据库中按某种顺序调数据来实现:
if(mycurrentPage==0){
sql="select top "+pageSize+" * from TABLE2 order by "+orderby+" "+ascdesc+"";
}else{
sql="select top "+pageSize+" * from TABLE2 where id not in (select top "+((currentPage-1)*pageSize)+" id from TABLE2 order by "+orderby+" "+ascdesc+")order by "+orderby+" "+ascdesc+"";
}
然后改变ascdesc的数值,实现顺序转换,可是我再次点击列名时却不是原来在第一页中的那些记录,而是按照某中顺序对表中全部数据排序后显示出来的结果。该怎么改才能对原来页中的数据进行排序呢?
你要把取值范围限定在SQL语句的后面,如:where rownum<4 and rownum>0这样你每次取出的都是你当前页面的内容,然后对这些数据进行新的排序,我就是这样做的
rownum是每行的记录数么?
rownum 是数据库自带的row编码
where rownum<4 and rownum>0这样写是非法的,取不到正确的数据,rownum只能用小于等于,不能大于等.
select rownum id1 from tablename where rownum<=4 and id1>0 用个别名就可以了
不能再次从数据库中查找,因为此时数据库有可能已经更新了数据或者增删了。取回的数据有可能不是原来显示的数据,既然已经分页说明你已经取回了一段数据,肯定是保存在一个容器中或者对象中,现在你直接对容器中的数据进行操作就可,由于是在内存中,速度肯定也快。
把当页数据在JSP页面中用数组保存,排序和显示用JAVASCRIPT做
http://community.csdn.net/Expert/topic/4782/4782752.xml?temp=.3081018
查询后显示的数据,随意排序,但是鼠标点击任一字段名后,自行按字母排序,这个需求怎么实现啊????????????????
获得数据后在javascript中用数组保存,初始化该数组data[][]
写一个排序的函数对该数组按某个字段进行排序 function sortby( field ){...//对data进行排序}
写一个在页面显示该数组的函数.
function display()
{
....
document.forms[formid].elementid.innerHtml=" ....";
....
}
function execute()
{
sortby( XXX );
display();
}
<form id="formid" onload="execute()">
<table>
<tr><td onclick="sortby(a)"></td>
<td onclick="sortby(a)"></td>
<td onclick="sortby(a)"></td>
</tr></table>
<table id="elementid"></table>
</form>
ldg_2(绿豆糕) ( ) 信誉:100 Blog 2006-8-30 14:53:51 得分: 0
不能再次从数据库中查找,因为此时数据库有可能已经更新了数据或者增删了。取回的数据有可能不是原来显示的数据,既然已经分页说明你已经取回了一段数据,肯定是保存在一个容器中或者对象中,现在你直接对容器中的数据进行操作就可,由于是在内存中,速度肯定也快。
....................................................................................
我是将取出来的东西放在一个字符串sql中的,可是怎么对存在sql中的进行排序呢???具体点可以么?
china2001ok(开心拽拽) ( ) 信誉:100 Blog 2006-8-30 10:57:08 得分: 0
你要把取值范围限定在SQL语句的后面,如:where rownum<4 and rownum>0这样你每次取出的都是你当前页面的内容,然后对这些数据进行新的排序,我就是这样做的
.................................................................................
我用的是sql="select top "+pageSize+" * from TABLE2 where id not in (select top "+((currentPage-1)*pageSize)+" id from TABLE2 order by "+orderby+" "+ascdesc+")order by "+orderby+" "+ascdesc+"";
是把取数值范围限制在sql语句后面的啊!!