如我有数据
ID Name
1 A
2 B
3 C
4 D
5 E
6 F
7 G
-----------------------------
一般我们绑定是 如每页3个
绑定后显示为第一页
1 A
2 B
3 C
---------------
然后点第二页为
4 D
5 E
6 F
-----------------
然后点第三页为
7 G
-------------------------------------------------
但现在我的环境要求绑定后应为
绑定后显示为第三页(这里一开始是为最后一页,而不是第一页)
5 E
6 F
7 G
----------------------------------
第二页
2 B
3 C
4 D
---------------------
第一页
1 A以上这样在怎么来实现谢谢
ID Name
1 A
2 B
3 C
4 D
5 E
6 F
7 G
-----------------------------
一般我们绑定是 如每页3个
绑定后显示为第一页
1 A
2 B
3 C
---------------
然后点第二页为
4 D
5 E
6 F
-----------------
然后点第三页为
7 G
-------------------------------------------------
但现在我的环境要求绑定后应为
绑定后显示为第三页(这里一开始是为最后一页,而不是第一页)
5 E
6 F
7 G
----------------------------------
第二页
2 B
3 C
4 D
---------------------
第一页
1 A以上这样在怎么来实现谢谢
7
6
5
—————
4
3
2
这样的,你在读数据的时候还需要把数据倒过来
6
5
—————
4
3
2 对ID再倒一次序就成了
5
6
7
—————
2
3
4
G
F
E
然后再对这些数据重新以升序排列即可,如果是从数据库中获取数据,sql语句就类似于
select * from (select * from 聊天记录 where id between @startIndex and @endIndex order by 时间 desc) order by 时间 asc
如果我用desc排序,查出来再进行二次排序的话也就是
绑定后显示为第三页(这里一开始是为最后一页,而不是第一页)
第一页
5 E
6 F
7 G
----------------------------------
第二页
2 B
3 C
4 D
---------------------
第三页
1 A
然后绑定后默认是显示第一页的然后我的是
---------------------
第一页
1 A
----------------------------------
第二页
2 B
3 C
4 D
--------------------------------------
第三页
5 E
6 F
7 G
然后绑定后一开始是显示最三页的
只要写相应的sql语句就可以了declare @t table (ID int,Num int)
insert into @t select 1,1
insert into @t select 2,1
insert into @t select 3,1
insert into @t select 4,1
insert into @t select 5,1
insert into @t select 6,1
insert into @t select 7,1
insert into @t select 8,1
insert into @t select 9,1
insert into @t select 10,1
insert into @t select 11,1
insert into @t select 12,1declare @a int
declare @b int
set @a = 1
set @b = 3
while @b<=(select count(1) from @t)
begin
select * from (select top (@b-@a+1) * from
(select top (@b) * from @t order by ID desc)a order by ID asc)b order by ID desc
set @a = @b+1
set @b = @b+3
end--结果
/*
ID Num
----------- -----------
12 1
11 1
10 1(3 row(s) affected)ID Num
----------- -----------
9 1
8 1
7 1(3 row(s) affected)ID Num
----------- -----------
6 1
5 1
4 1(3 row(s) affected)ID Num
----------- -----------
3 1
2 1
1 1
*/
declare @t table (ID int,Num int)
insert into @t select 1,1
insert into @t select 2,1
insert into @t select 3,1
insert into @t select 4,1
insert into @t select 5,1
insert into @t select 6,1
insert into @t select 7,1
insert into @t select 8,1
insert into @t select 9,1
insert into @t select 10,1
insert into @t select 11,1
insert into @t select 12,1declare @a int
declare @b int
set @a = 1
set @b = 3
while @b<=(select count(1) from @t)
begin
select top (@b-@a+1) * from
(select top (@b) * from @t order by ID desc)a order by ID asc
set @a = @b+1
set @b = @b+3
end--结果
/*
ID Num
----------- -----------
10 1
11 1
12 1(3 row(s) affected)ID Num
----------- -----------
7 1
8 1
9 1(3 row(s) affected)ID Num
----------- -----------
4 1
5 1
6 1(3 row(s) affected)ID Num
----------- -----------
1 1
2 1
3 1
*/
http://topic.csdn.net/u/20071212/09/6531b4b2-1759-4375-8f99-50082c646a24.html?seed=1188201500