| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 362 人关注过本帖
标题:[求助][求助]比较特别的分页问题,看得懂的帮下
只看楼主 加入收藏
lusat
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-5-9
收藏
 问题点数:0 回复次数:0 
[求助][求助]比较特别的分页问题,看得懂的帮下

下面是全部代码,能正常运行,采用的分页方法是确定开始和结束的记录条数(这里的是20,循环自减)能不能在此基础上加个跳转页?就是输入页数然后点跳转的那种我是这样想的,在MM_moveFirst(第1页)的基础上加输入的页数乘以20来实现不知道可以实现不

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Connections/conn_news.asp" -->
<!--#include file="yns_config.asp" -->
<!--#include file="yns_chklogin.asp" -->
<% chk_user_login(1) %>
<!--#include file="yns_chkerror.asp" -->
<%
Dim rsn__mmtid
rsn__mmtid = "0"
If (request.querystring("t_id") <> "") Then
rsn__mmtid = request.querystring("t_id")
End If
%>
<%
Dim rsn__mmtsid
rsn__mmtsid = "0"
If (request.querystring("ts_id") <> "") Then
rsn__mmtsid = request.querystring("ts_id")
End If
%>
<%
Dim rsn__mmntitle
rsn__mmntitle = "0"
If (request.querystring("n_title") <> "") Then
rsn__mmntitle = request.querystring("n_title")
End If
%>
<%
if request.QueryString("t_id") = "" and request.QueryString("ts_id") <> "" then
response.Write yns_err_null
response.End()
end if
%>
<%
Dim rsn
Dim rsn_numRows
dim mm_sql

Set rsn = Server.CreateObject("ADODB.Recordset")
rsn.ActiveConnection = MM_conn_news_STRING
mm_sql = "SELECT * FROM (t_news inner join t_type on t_news.n_tid = t_type.t_id) inner join t_type_son on t_news.n_tsid = t_type_son.ts_id "
if request.QueryString("t_id") = "" then
if request.QueryString("n_title") <> "" then
mm_sql = mm_sql + "WHERE n_title like '%" + Replace(rsn__mmntitle, "'", "''") + "%'"
end if
else
if request.QueryString("t_id") <> "" then
mm_sql = mm_sql +"WHERE n_tid = " + Replace(rsn__mmtid, "'", "''")
end if
if request.QueryString("ts_id") <> "" then
mm_sql = mm_sql + " and n_tsid = " + Replace(rsn__mmtsid, "'", "''")
end if
if request.QueryString("n_title") <> "" then
mm_sql = mm_sql + "and n_title like '%" + Replace(rsn__mmntitle, "'", "''") + "%'"
end if
end if
mm_sql = mm_sql + " ORDER BY n_date DESC"
'response.Write(mm_sql)
rsn.Source = mm_sql
rsn.CursorType = 0
rsn.CursorLocation = 2
rsn.LockType = 1
rsn.Open()

rsn_numRows = 0
%>
<%
Dim rst
Dim rst_numRows

Set rst = Server.CreateObject("ADODB.Recordset")
rst.ActiveConnection = MM_conn_news_STRING
rst.Source = "SELECT * FROM t_type"
rst.CursorType = 0
rst.CursorLocation = 2
rst.LockType = 1
rst.Open()

rst_numRows = 0
%>
<%
dim mm_tspid
if request.QueryString("t_id") <> "" then
mm_tspid = request.QueryString("t_id")
end if
%>
<%
Dim rsts__MMColParam
rsts__MMColParam = "1"
If (mm_tspid <> "") Then
rsts__MMColParam = mm_tspid
End If
%>
<%
Dim rsts
Dim rsts_numRows

Set rsts = Server.CreateObject("ADODB.Recordset")
rsts.ActiveConnection = MM_conn_news_STRING
rsts.Source = "SELECT * FROM t_type_son WHERE ts_pid = " + Replace(rsts__MMColParam, "'", "''") + ""
rsts.CursorType = 0
rsts.CursorLocation = 2
rsts.LockType = 1
rsts.Open()

rsts_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = 20
Repeat1__index = 0
rsn_numRows = rsn_numRows + Repeat1__numRows
%>
<%
' *** Recordset Stats, Move To Record, and Go To Record: declare stats variables

Dim rsn_total
Dim rsn_first
Dim rsn_last

' set the record count
rsn_total = rsn.RecordCount

' set the number of rows displayed on this page
If (rsn_numRows < 0) Then
rsn_numRows = rsn_total
Elseif (rsn_numRows = 0) Then
rsn_numRows = 1
End If

' set the first and last displayed record
rsn_first = 1
rsn_last = rsn_first + rsn_numRows - 1

' if we have the correct record count, check the other stats
If (rsn_total <> -1) Then
If (rsn_first > rsn_total) Then
rsn_first = rsn_total
End If
If (rsn_last > rsn_total) Then
rsn_last = rsn_total
End If
If (rsn_numRows > rsn_total) Then
rsn_numRows = rsn_total
End If
End If
%>
<%
' *** Recordset Stats: if we don't know the record count, manually count them

If (rsn_total = -1) Then

' count the total records by iterating through the recordset
rsn_total=0
While (Not rsn.EOF)
rsn_total = rsn_total + 1
rsn.MoveNext
Wend

' reset the cursor to the beginning
If (rsn.CursorType > 0) Then
rsn.MoveFirst
Else
rsn.Requery
End If

' set the number of rows displayed on this page
If (rsn_numRows < 0 Or rsn_numRows > rsn_total) Then
rsn_numRows = rsn_total
End If

' set the first and last displayed record
rsn_first = 1
rsn_last = rsn_first + rsn_numRows - 1

If (rsn_first > rsn_total) Then
rsn_first = rsn_total
End If
If (rsn_last > rsn_total) Then
rsn_last = rsn_total
End If

End If
%>
<%
Dim MM_paramName
%>
<%
' *** Move To Record and Go To Record: declare variables

Dim MM_rs
Dim MM_rsCount
Dim MM_size
Dim MM_uniqueCol
Dim MM_offset
Dim MM_atTotal
Dim MM_paramIsDefined

Dim MM_param
Dim MM_index

Set MM_rs = rsn
MM_rsCount = rsn_total
MM_size = rsn_numRows
MM_uniqueCol = ""
MM_paramName = ""
MM_offset = 0
MM_atTotal = false
MM_paramIsDefined = false
If (MM_paramName <> "") Then
MM_paramIsDefined = (Request.QueryString(MM_paramName) <> "")
End If
%>
<%
' *** Move To Record: handle 'index' or 'offset' parameter

if (Not MM_paramIsDefined And MM_rsCount <> 0) then

' use index parameter if defined, otherwise use offset parameter
MM_param = Request.QueryString("index")
If (MM_param = "") Then
MM_param = Request.QueryString("offset")
End If
If (MM_param <> "") Then
MM_offset = Int(MM_param)
End If

' if we have a record count, check if we are past the end of the recordset
If (MM_rsCount <> -1) Then
If (MM_offset >= MM_rsCount Or MM_offset = -1) Then ' past end or move last
If ((MM_rsCount Mod MM_size) > 0) Then ' last page not a full repeat region
MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
Else
MM_offset = MM_rsCount - MM_size
End If
End If
End If

' move the cursor to the selected record
MM_index = 0
While ((Not MM_rs.EOF) And (MM_index < MM_offset Or MM_offset = -1))
MM_rs.MoveNext
MM_index = MM_index + 1
Wend
If (MM_rs.EOF) Then
MM_offset = MM_index ' set MM_offset to the last possible record
End If

End If
%>
<%
' *** Move To Record: if we dont know the record count, check the display range

If (MM_rsCount = -1) Then

' walk to the end of the display range for this page
MM_index = MM_offset
While (Not MM_rs.EOF And (MM_size < 0 Or MM_index < MM_offset + MM_size))
MM_rs.MoveNext
MM_index = MM_index + 1
Wend

' if we walked off the end of the recordset, set MM_rsCount and MM_size
If (MM_rs.EOF) Then
MM_rsCount = MM_index
If (MM_size < 0 Or MM_size > MM_rsCount) Then
MM_size = MM_rsCount
End If
End If

' if we walked off the end, set the offset based on page size
If (MM_rs.EOF And Not MM_paramIsDefined) Then
If (MM_offset > MM_rsCount - MM_size Or MM_offset = -1) Then
If ((MM_rsCount Mod MM_size) > 0) Then
MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
Else
MM_offset = MM_rsCount - MM_size
End If
End If
End If

' reset the cursor to the beginning
If (MM_rs.CursorType > 0) Then
MM_rs.MoveFirst
Else
MM_rs.Requery
End If

' move the cursor to the selected record
MM_index = 0
While (Not MM_rs.EOF And MM_index < MM_offset)
MM_rs.MoveNext
MM_index = MM_index + 1
Wend
End If
%>
<%
' *** Move To Record: update recordset stats

' set the first and last displayed record
rsn_first = MM_offset + 1
rsn_last = MM_offset + MM_size

If (MM_rsCount <> -1) Then
If (rsn_first > MM_rsCount) Then
rsn_first = MM_rsCount
End If
If (rsn_last > MM_rsCount) Then
rsn_last = MM_rsCount
End If
End If

' set the boolean used by hide region to check if we are on the last record
MM_atTotal = (MM_rsCount <> -1 And MM_offset + MM_size >= MM_rsCount)
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

Dim MM_keepNone
Dim MM_keepURL
Dim MM_keepForm
Dim MM_keepBoth

Dim MM_removeList
Dim MM_item
Dim MM_nextItem

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then
MM_removeList = MM_removeList & "&" & MM_paramName & "="
End If

MM_keepURL=""
MM_keepForm=""
MM_keepBoth=""
MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each MM_item In Request.QueryString
MM_nextItem = "&" & MM_item & "="
If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
MM_keepURL = MM_keepURL & MM_nextItem & Server.URLencode(Request.QueryString(MM_item))
End If
Next

' add the Form variables to the MM_keepForm string
For Each MM_item In Request.Form
MM_nextItem = "&" & MM_item & "="
If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
MM_keepForm = MM_keepForm & MM_nextItem & Server.URLencode(Request.Form(MM_item))
End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
If (MM_keepBoth <> "") Then
MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
End If
If (MM_keepURL <> "") Then
MM_keepURL = Right(MM_keepURL, Len(MM_keepURL) - 1)
End If
If (MM_keepForm <> "") Then
MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
End If

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
If (firstItem <> "") Then
MM_joinChar = "&"
Else
MM_joinChar = ""
End If
End Function
%>
<%
' *** Move To Record: set the strings for the first, last, next, and previous links

Dim MM_keepMove
Dim MM_moveParam
Dim MM_moveFirst
Dim MM_moveLast
Dim MM_moveNext
Dim MM_movePrev

Dim MM_urlStr
Dim MM_paramList
Dim MM_paramIndex
Dim MM_nextParam

MM_keepMove = MM_keepBoth
MM_moveParam = "index"

' if the page has a repeated region, remove 'offset' from the maintained parameters
If (MM_size > 1) Then
MM_moveParam = "offset"
If (MM_keepMove <> "") Then
MM_paramList = Split(MM_keepMove, "&")
MM_keepMove = ""
For MM_paramIndex = 0 To UBound(MM_paramList)
MM_nextParam = Left(MM_paramList(MM_paramIndex), InStr(MM_paramList(MM_paramIndex),"=") - 1)
If (StrComp(MM_nextParam,MM_moveParam,1) <> 0) Then
MM_keepMove = MM_keepMove & "&" & MM_paramList(MM_paramIndex)
End If
Next
If (MM_keepMove <> "") Then
MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
End If
End If
End If

' set the strings for the move to links
If (MM_keepMove <> "") Then
MM_keepMove = MM_keepMove & "&"
End If

MM_urlStr = Request.ServerVariables("URL") & "?" & MM_keepMove & MM_moveParam & "="

MM_moveFirst = MM_urlStr & "0"
MM_moveLast = MM_urlStr & "-1"
MM_moveNext = MM_urlStr & CStr(MM_offset + MM_size)
If (MM_offset - MM_size < 0) Then
MM_movePrev = MM_urlStr & "0"
Else
MM_movePrev = MM_urlStr & CStr(MM_offset - MM_size)
End If
%>
<%
Dim Repeat2__numRows
Dim Repeat2__index

Repeat2__numRows = -1
Repeat2__index = 0
rst_numRows = rst_numRows + Repeat2__numRows
%>

<%
Dim Repeat3__numRows
Dim Repeat3__index

Repeat3__numRows = -1
Repeat3__index = 0
rsts_numRows = rsts_numRows + Repeat3__numRows
%>
<%
If not isempty(Request.QueryString("page")) then
page=Cint(Request.QueryString("page"))
else
page=1
end if
rsn.PageSize=
rsn.AbsolutePage=page
For iPage = 1 To rs.PageSize
If rsn.EOF Then Exit For
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>业一信息系统4.0正式版-------业一中国Yeyi.cn</title>
<link href="style/css.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="94%" border="0" align="center" cellpadding="0" cellspacing="1">
<form name="form2" method="get" action="yns_nlist.asp">
<tr>
<td align="right">
<% if request.QueryString("t_id") then %> <input name="t_id" type="hidden" id="t_id" value="<% = request.querystring("t_id") %>">
<% end if %> <% if request.QueryString("ts_id") then %> <input name="ts_id" type="hidden" id="ts_id" value="<% = request.querystring("ts_id") %>">
<% end if %> <input name="n_title" type="text" id="n_title">
<input type="submit" value="搜索">
</td>
</tr>
</form>
</table>
<table width="94%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="30" valign="bottom" > <table border="1" cellpadding="4" cellspacing="0" class="table-line">
<tr>
<td onMouseOver=this.style.backgroundColor='#FFFFCC' onMouseOut=this.style.backgroundColor='' <% if request.QueryString("t_id") ="" then response.Write("bgcolor="&chr(34)&"#FFFF88"&chr(34)) else response.Write("bgcolor="&chr(34)&"#EFEFEF"&chr(34)) end if %> class="menu-td-bargain"><a href="yns_nlist.asp" class="aa">全部信息</a></td>
<%
While ((Repeat2__numRows <> 0) AND (NOT rst.EOF))
%>
<td onMouseOver=this.style.backgroundColor='#FFFFCC' onMouseOut=this.style.backgroundColor='' <% if cint(request.QueryString("t_id")) =(rst.Fields.Item("t_id").Value) then response.Write("bgcolor="&chr(34)&"#FFFF88"&chr(34)) else response.Write("bgcolor="&chr(34)&"#EFEFEF"&chr(34)) end if %> class="menu-td-bargain"><a href="yns_nlist.asp?t_id=<%=(rst.Fields.Item("t_id").Value)%>" class="aa"><%=(rst.Fields.Item("t_name").Value)%></a></td>
<%
Repeat2__index=Repeat2__index+1
Repeat2__numRows=Repeat2__numRows-1
rst.MoveNext()
Wend
%>
</tr>
</table> </td>
</tr>
<tr>
<td height="25" bgcolor="#FFFFCC" class="td-border-all"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<%
While ((Repeat3__numRows <> 0) AND (NOT rsts.EOF))
%>
<td class="menu-td-bargain"><a href="yns_nlist.asp?t_id=<%=(rsts.Fields.Item("ts_pid").Value)%>&ts_id=<%=(rsts.Fields.Item("ts_id").Value)%>" class="aa"><%=(rsts.Fields.Item("ts_name").Value)%></a></td>
<%
Repeat3__index=Repeat3__index+1
Repeat3__numRows=Repeat3__numRows-1
rsts.MoveNext()
Wend
%>
</tr>
</table></td>
</tr>
</table>
<p></p>
<table width="92%" border="1" align="center" cellpadding="4" cellspacing="0" class="table-line">
<tr class="td-title-color">
<td width="20" align="center">图</td>
<td width="20" height="28" align="center">荐</td>
<td width="150">大类/小类</td>
<td>信息标题</td>
<td width="150" height="28" align="center">操作</td>
</tr>
<form action="deletenews.asp">
<%
While ((Repeat1__numRows <> 0) AND (NOT rsn.EOF))
%>
<tr class="td-body-color" onMouseOver=this.style.backgroundColor='#FFFFCC' onMouseOut=this.style.backgroundColor=''>
<td width="20" align="center"><% if (rsn.Fields.Item("n_index").Value)=1 then %><img src="images/yns_ico_index.gif"><% End If %></td>
<td width="20" height="30" align="center">
<% if (rsn.Fields.Item("n_commend").Value)=1 then %> <img src="images/yns_ico_commend.gif" width="16" height="16">
<% End If %> </td>
<td width="150" height="30"><font color="#333333"><%=(rsn.Fields.Item("t_name").Value)%>/<%=(rsn.Fields.Item("ts_name").Value)%></font></td>
<td height="30"><a href="<%= (rsn.Fields.Item("t_dir").Value) %>/<%= (rsn.Fields.Item("ts_dir").Value) %>/<%=(rsn.Fields.Item("n_fpath").Value)%>/<%= (rsn.Fields.Item("n_fname").Value) %>" target="_blank"><%=(rsn.Fields.Item("n_title").Value)%></a> </td>
<td width="150" height="30" align="center"><input type="checkbox" name="n_title" value="<%=rsn.Fields.Item("n_id")%>"><a href="yns_ndel.asp?n_id=<%=(rsn.Fields.Item("n_id").Value)%>" onClick="javascript:return confirm('请确认删除操作 ?')">删除</a>
<a href="yns_nupdata.asp?n_id=<%=(rsn.Fields.Item("n_id").Value)%>&offset=<%=MM_offset%>">更新</a>
<% if (rsn.Fields.Item("n_check").Value) = false then %> <a href="yns_ncheck.asp?n_id=<%=(rsn.Fields.Item("n_id").Value)%>&n_check=<%=(rsn.Fields.Item("n_check").Value)%>">审核</a>
<% else %> <a href="yns_ncheck.asp?n_id=<%=(rsn.Fields.Item("n_id").Value)%>&n_check=<%=(rsn.Fields.Item("n_check").Value)%>" class="aa" title="取消审核" onClick="javascript:return confirm('请确认取消审核操作 ?')">已审</a>
<% end if %> </td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
rsn.MoveNext()
Wend
%>
<td align="right"> </td>
<td align="right"> </td>
<td align="right"> </td>
<td align="right"> </td>
<td colspan="4"><input type="submit" value="删除消息">
</form>

</table>
<p></p>
<table width="92%" border="0" align="center" cellpadding="4" cellspacing="0" class="table-line">
<tr>
<td>&nbsp; 记录 <%=(rsn_first)%> 到 <%=(rsn_last)%> (总共 <%=(rsn_total)%> 个记录)
</td>
<td> <table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center" class="menu-td-bargain">
<% If MM_offset <> 0 Then %>
<a href="<%=MM_moveFirst%>">第一页</a>
<% End If ' end MM_offset <> 0 %>
</td>
<td align="center" class="menu-td-bargain">
<% If MM_offset <> 0 Then %>
<a href="<%=MM_movePrev%>">前一页</a>
<% End If ' end MM_offset <> 0 %>
</td>
<td align="center" class="menu-td-bargain">
<% If Not MM_atTotal Then %>
<a href="<%=MM_moveNext%>">下一页</a>
<% End If ' end Not MM_atTotal %>
</td>
<td align="center" class="menu-td-bargain">
<% If Not MM_atTotal Then %>
<a href="<%=MM_moveLast%>">最后一页</a>
<% End If ' end Not MM_atTotal %>
</td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
<%
rsn.Close()
Set rsn = Nothing
%>
<%
rst.Close()
Set rst = Nothing
%>
<%
rsts.Close()
Set rsts = Nothing
%>

[此贴子已经被作者于2006-5-28 13:17:58编辑过]

2006-05-28 13:05
快速回复:[求助][求助]比较特别的分页问题,看得懂的帮下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033825 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved