查看文章 |
以通讯录为例: ![]() 一、单向一级传递 页面a-----id------->页面b 例2:index.asp(删除)----id---->del.asp del.asp: id=request.querystring("id") '左边的id为定义的变量;右边的id为传递的参数
例3:index.asp(修改)----id---->update_form.asp----id+表单数据---->update.asp update_form.asp: 密码:<input type="password" name="pwd" size="20" value="<%=rs("pwd")%>"<br> 性别:<input type="radio" name="sex" value="男" <% if rs("sex")="男" then response.write "checked"%>>男 <input type="radio" name="sex" value="女" <% If rs("sex")="女" Then Response.Write "Checked"%>>女<br> 爱好:<input type="checkbox" name="mylove" value="音乐" <% if instr(rs("mylove"),"音乐")>0 then response.write "checked"%>>音乐 <input type="checkbox" name="mylove" value="计算机" <% If Instr(rs("mylove"),"计算机")>0 Then Response.Write "Checked"%>>计算机 <input type="checkbox" name="mylove" value="旅游" <% If Instr(rs("mylove"),"旅游")>0 Then Response.Write "Checked"%>>旅游<br> 职业:<select name="career"> <option value="学生" <% if rs("career")="学生" then response.write "selected"%>>学生</option> <option value="教师" <% If rs("career")="教师" Then Response.Write "Selected"%>>教师</option> </form> update.asp 三、将数据传递给自己 页面a---page_no---->页面a A.分页程序: 预备: 0.recordset的4个属性: pagesize:每页记录数; pagecount:数据页总数; absolutepage:当前指针所在数据页; recordcount:记录集记录总数 2.若想显示某一页记录,需要给absolutepage赋值(rs.absolutepage=page_no),记录集指针会指向该数据页首条记录。 3.数据页结尾判断:当到达记录集结尾或显示够pagesize指定的数目后,循环应终止。 程序分析: 1.定义变量page_no,确定显示第几页数据页。 dim page_no if request.querystring("page_no")="" then page_no=1 else end if 2.建立recordset对象 set rs=server.createobject("adodb.recordset") strsql="select * from users order by submit_date desc" rs.open strsql,db,1 '因为要分页显示,所以要用键盘指针 3.分页显示记录集数据页 rs.pagesize=5 '设置每页显示5条记录 dim page_total,data_count page_total=rs.pagecount '数据页总页数 rs.absolutepage=page_no '设置当前显示第几页 '用循环显示记录 dim i i=5 '用i控制显示记录,i应与rs.pagesize一致 do while not rs.eof and i>0 '数据页结尾判断 共5页/25条信息 【首页】【上一页】【下一页】【尾页】第2页/共5页 <% dim numpre,numnext '定义2个变量,分别表示上一页和下一页的页码 numpre=page_no-1 '以下输出 第2页/共4页 B.表单将数据传给自己(模糊查询:查找多个关键字) 1.定义关键字keyword if keyword="" then '如果上面这句红色sql语句换成下面的蓝色代码,就变成多个关键字模糊查询 Dim arrKeyword,numKeyword,I,condition 四、双向一级数据传递 当你在通讯录中,浏览某一页,或在查询的结果中浏览某一页时(如文章开头图片所示)。 如果你在某条记录后点“删除”(或“修改”)时,你删除了一条记录,那么删除完毕后会自动返回首页index.asp,可是这时看到的记录是第一张数据页中的记录,而不是我们删除记录所在的数据页的记录!为了解决这个问题,需要使用双向数据传递! 页面a----id、session("page_no")=page_no---->页面b----page_no---->页面a A.修正在浏览时数据页显示问题 分析:我们可以将page_no在打开首页时事先保存在session中;点“删除”返回时,就令page_no为session("page_no")中的值。 index.asp中page_no判断: <% B.修正在进行查询时数据页显示问题 分析:我们用类似的方法,设置变量keyword,然后进行判断 1.首次打开页面,自然默认显示所有记录,此时令keyword="",并保存到session中; 用vartype函数来判断表单提交状态: vartype(request.form("keyword"))=0 '表示用户首次打开,或从其它页面返回 4.如果用户是从删除页(或修改页)重定向到index.asp,则令keyword="",并保存到session中 index.asp中keyword判断: <%
页面数据传递综合:综合起来就是一个完整的通讯录 补充: 1.在“添加记录”页面add.asp,由于添加记录后希望新添加的记录显示在数据页的首页头条,所以在返回前: 2.当输入关键字(或"")提交后,不管原来的用户正在查找第几页,都应该指定为新的结果记录集的首页,vartype(request("keyword"))=8,所以在首页的page_no判断中应增加一项判断: 3.index.asp页面简析 判断page_no------>判断keyword------>分页显示记录集数据页记录----->输出页码信息 |
