主题:  怎样制作跳转到第?记录

小彬

职务:普通成员
等级:1
金币:1.0
发贴:193
注册:2000/10/25 7:49:46
#12001/10/5 22:51:00
我制作了一个跳转到第?记录的功能,用IE进行测试出现,跳转的记录数多是比输入的数字多1,如输入4,显示的是第5条记录。
我的制作方法:标记的method属性设置为"GET",设置为当前页的链接地址,文本框的name属性设置为"offset"
怎样制作才能正确显示呢?



風雲

职务:普通成员
等级:2
金币:1.0
发贴:281
注册:2001/6/24 14:11:35
#22001/10/6 3:12:32
利用隐藏域的方法,结合JSCRIPT。



小彬

职务:普通成员
等级:1
金币:1.0
发贴:193
注册:2000/10/25 7:49:46
#32001/10/6 14:28:24
能否说详细一点?



tonton_5d

职务:普通成员
等级:2
金币:1.0
发贴:176
注册:2001/8/7 23:57:56
#42001/10/7 9:57:21
你的记录中如果有一个字段是表示记录序号的话(比如自动编号类型字段),那么只要在SQL语句中用加入"WHERE ID=" & rsNO就可以了。


免费提供XML计数器服务 www.tonton.cn

小彬

职务:普通成员
等级:1
金币:1.0
发贴:193
注册:2000/10/25 7:49:46
#52001/10/7 12:09:15
tonton谢谢,我怎么就没有想到。



小彬

职务:普通成员
等级:1
金币:1.0
发贴:193
注册:2000/10/25 7:49:46
#62001/10/8 20:10:50
toto兄你的方法是可行,但我在查询有条件的结果时,就不能用数据库的ID进行跳转了,输入的ID对查询者来说,这可能出来的记录根本不是他所要查询的?
风云说“利用隐藏域的方法,结合JSCRIPT”,不知哪位网友能否帮我说明详细一些。



tonton_5d

职务:普通成员
等级:2
金币:1.0
发贴:176
注册:2001/8/7 23:57:56
#72001/10/9 11:25:51
有两个方法:
第一种是在重新取得记录集(就是取得符合你要求的记录集recordset),然后用一个循环:
dim num,flags
num=1
flags=false
do while rs.EOF
if num=20 then
'在这里添加你要的操作代码
flags = true
exit do '跳出循环
else
num=num+1
end if
loop
if flags=false then
'没有找到记录的代码
end if

第二种方法,使用记录分页的方法,把pagesize设为1,然后改变当前页AbsolutePage的值,即你要哪一条记录就把当前页设为这个数。当然,你得先判决要跳转的记录序号是不是在合法范围内。

dim rsNo
rsNo=.... '获取记录序号
rsN0=Clng(rsNo)
if rsNo<0 then
'错误序号
elseif rsNo>recordset.PageCount then
'错误序号
else
'正确序号
end if
recordset.AbsolutePage=rsNo
.......

-------------
以上方法不需要用到任何隐藏域或JS

编辑历史:[这消息被tonton编辑过(编辑时间2001-10-09 11:26:58)]

免费提供XML计数器服务 www.tonton.cn

blshfw

职务:普通成员
等级:1
金币:1.0
发贴:241
注册:2001/5/15 16:44:13
#82001/10/9 15:57:53
asp里不是有现成的语句吗?语法如下:
变量=Recordset对象变量.AbsolutePosition
将记录指针设定为指向第N条记录底语法如下:
Recordset对象变量.AbsolutePosition = N

不过,请你注意,在asp网页想要使用AbsolutePosition属性时,所打开的记录集不可以使用动态记录指针与向前记录指针。换句话说,调用Recordset对象的Open方法时,传人的第三个参数值,仅能使用1(静态记录指针)或3(索引记录指针)。