注册 登录
编程论坛 ASP技术论坛

关于asp自动编号并分页的问题

kombel 发布于 2011-10-17 17:18, 884 次点击
我想做一个有自动编号功能的文章发布系统,而这个自动编号不是由数据库读出来的,而是能够在前台自动调整显示。也就是说我在数据库中删除其中的任何一条记录,都不会影响到自动编号。。请哪位高手帮帮忙..菜鸟在此谢过了。。。。

这里为第一页所显示的内容:

 1. 这里是文章一的标题及其内容。
 2. 这里是文章二的标题及其内容。
 3. 这里是文章三的标题及其内容。
 4. 这里是文章四的标题及其内容。
 5. 这里是文章五的标题及其内容。
 6. 这里是文章六的标题及其内容。
 7. 这里是文章七的标题及其内容。
 8. 这里是文章八的标题及其内容。
 9. 这里是文章九的标题及其内容。
 10. 这里是文章十的标题及其内容。

页次 1/10 共200条记录 首页 1 2 3 4 5 6 7 8 9 10 下十页 尾页 转到第 1 页

以下为第二页所显示的内容:

 11. 这里是文章十一的标题及其内容。
 12. 这里是文章十二的标题及其内容。
 13. 这里是文章十三的标题及其内容。
 14. 这里是文章十四的标题及其内容。
 15. 这里是文章十五的标题及其内容。
 16. 这里是文章十六的标题及其内容。
 17. 这里是文章十七的标题及其内容。
 18. 这里是文章十八的标题及其内容。
 19. 这里是文章十九的标题及其内容。
 20. 这里是文章二十的标题及其内容。

页次 2/10 共200条记录 首页 1 2 3 4 5 6 7 8 9 10 下十页 尾页 转到第 2 页

依次往下排 ......

若在其中删除两条记录

5. 这里是文章五的标题及其内容。
12. 这里是文章十二的标题及其内容。

则显示为

这里为第一页所显示的内容:

 1. 这里是文章一的标题及其内容。
 2. 这里是文章二的标题及其内容。
 3. 这里是文章三的标题及其内容。
 4. 这里是文章四的标题及其内容。
 5. 这里是文章六的标题及其内容。
 6. 这里是文章七的标题及其内容。
 7. 这里是文章八的标题及其内容。
 8. 这里是文章九的标题及其内容。
 9. 这里是文章十的标题及其内容。
 10. 这里是文章十一的标题及其内容。

页次 1/10 共200条记录 首页 1 2 3 4 5 6 7 8 9 10 下十页 尾页 转到第 1 页

以下为第二页所显示的内容:

 11. 这里是文章十三的标题及其内容。
 12. 这里是文章十四的标题及其内容。
 13. 这里是文章十五的标题及其内容。
 14. 这里是文章十六的标题及其内容。
 15. 这里是文章十七的标题及其内容。
 16. 这里是文章十八的标题及其内容。
 17. 这里是文章十九的标题及其内容。
 18. 这里是文章二十的标题及其内容。
 19. 这里是文章二十一的标题及其内容。
 20. 这里是文章二十二的标题及其内容。

页次 2/10 共200条记录 首页 1 2 3 4 5 6 7 8 9 10 下十页 尾页 转到第 2 页

4 回复
#2
编程的乐趣2011-10-17 18:57
#3
yms1232011-10-17 19:31
程序代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.
>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!--#include file="CONDB.inc"-->
<!--引用数据库连接文件-->
<!--#include file="Cls\WebSiteSetInf.asp"-->
<%
   
'声明数据库记录集对象
   Dim rsano
   
Dim oWebI
   
'创建数据库记录集对象
   Set rsano=Server.CreateObject("ADODB.Recordset")
   
'设定数据库记录集游标类型
   rsano.cursortype=3
   
'打开记录集对象
   rsano.Open "select * From ANOUCE ORDER BY AnnounceTheDate DESC",con
   
'设定每页显示记录数
   rsano.pagesize=25
   
'得到请求的页号
   page=clng(request("page"))
   
IF request("page")<>"" then
     page
=clng(request("page"))
   
Else
     page
=1
   
End IF
   
IF page<1 Then page=1
   
If page>rsano.pagecount Then page=rsano.pagecount
   rsano.absolutepage
=page
   
'网页样式初始化代码
   Dim PageStyleT
   
Set oWebI=New WebSetInf
   
Set PageStyleT=New PageStyle
   
Call QueryStyle("网站公告页面",PageStyleT)
%>
<title><%=oWebI.WebName%>-网站公告页面</title>
<!--去除超连接下划线样式表和字体大小设定代码-->
<style type="text/css">
<!--
  <%=PageStyleT.StyleString%>
-->
</style>
<STYLE type=text/css>
A
{
    TEXT-TRANSFORM
: none; TEXT-DECORATION: none
}
UNKNOWN
{
    TEXT-DECORATION
: underline
}
.style22
{font-size: 12px}
.style16
{font-size: 14px}
BODY
{
    background-color
: <%=PageStyleT.BackGround%>;
}
</STYLE>
</head>

<BODY>

<table width="294" height="46" border="0" cellspacing="0">
  <tr>
    <td width="338"><div align="center" class="style22">公告标题</div></td>
    <td width="95"><div align="center" class="style22">发布日期</div></td>
  </tr>
  <%
  
'定义循环变量
  dim iPage
  
For iPage=1 to rsano.Pagesize
   
'recno=(page-1)*rsano.pagesize+ipage
   '记录自动编号计算公式
   '(当前页-1)*每页记录数+当前页当前记录编号
   Response.Write("<tr>")
     Response.write(
"<td><span class=style16><a href=announceview.asp?anbh="&rsano.Fields(0).Value&" target=_self>"&rsano.Fields(1).Value&"</a></span></td>")
     Response.Write(
"<td><span class=style22>"&FormatDateTime(rsano.Fields(4).Value,2)&"</span></td>")
   Response.Write(
"</tr>")
   rsano.MoveNext
   
IF rsano.EOF Then
      
Exit For
   
End If
  
Next
  
%>
</table>
<table width="293" border="0">
  <tr>
  <%
  
'翻页控制代码
  IF page<>1 Then
    Response.Write(
"<td><span class=style22><a href=announce.asp?page=1>第一页</a></span></td>")
    Response.Write(
"<td><span class=style22><a href=announce.asp?page="&(page-1)&">上一页</a></span></td>")
  
Else
    Response.Write(
"<td><span class=style22>第一页</span></td>")
    Response.Write(
"<td><span class=style22>上一页</span></td>")
  
End IF   
  
IF page<>rsano.pagecount then
    Response.Write(
"<td><span class=style22><a href=announce.asp?page=" & (page+1) & ">下一页</a></span></td>")
    Response.Write(
"<td><span class=style22><a href=announce.asp?page=" & rsano.pagecount & ">最后一页</a></span></td>")
  
Else
    Response.Write(
"<td><span class=style22>下一页</span></td>")
    Response.Write(
"<td><span class=style22>最后一页</span></td>")
  
End IF
  
%>
    <td><span class=style22><%=rsano.pagecount%></span></td>
    <td><span class=style22>当前第<%=page%></span></td>
  </tr>
</table>
<%
'网页对象析构代码
Set PageStyleT=Nothing
rsano.Close
con.Close
Set rsano=Nothing
Set con=Nothing
Set oWebI=Nothing
%>
</body>
</html>
   'recno=(page-1)*rsano.pagesize+ipage
   '记录自动编号计算公式
   '(当前页-1)*每页记录数+当前页当前记录编号
  这个就是达到LZ想要的效果的算法

[ 本帖最后由 yms123 于 2011-10-17 19:33 编辑 ]
#4
kombel2011-10-18 10:09
回复 3楼 yms123
嗯  我这试试效果
#5
kombel2011-10-18 11:16
有没有具体的方法  版主能不能写一个啊
程序代码:
<!--#include file="Admin_check.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>产品信息</title>
<link href="css/index.css" rel="stylesheet" type="text/css" />

<script language="javascript">
function CheckAll(form)
{
///定义函数checkall,参数为form

for (var i=0;i<form.elements.length;i++)

///循环,form.elements.length得到表单里的控件个数
{

///把表单里的内容依依付给e这个变量
var e = form.elements[i];
if (e.name != 'chkall')
e.checked
= form.chkall.checked;
}
}
</script>
<script>
function btn_ck_bh_Click()
{
var cx = document.form1.cxsj.value;
form1.action
="index.asp?cx="+cx;
}
</script>
<style type="text/css">
<!--
.STYLE1
{color: #FF0000}
-->
</style>
<style type="text/css">

.thumbnail
{
position
: relative;
z-index
: 0;
}

.thumbnail:hover
{
background-color
: transparent;
z-index
: 50;
}

.thumbnail span
{ /*CSS for enlarged image*/
position
: absolute;
background-color
: lightyellow;
padding
: 1px;
left
: -1000px;
border
: 1px dashed gray;
visibility
: hidden;
color
: black;
text-decoration
: none;
}

.thumbnail span img
{ /*CSS for enlarged image*/
border-width
: 0;
padding
: 2px;
}

.thumbnail:hover span
{ /*CSS for enlarged image on hover*/
visibility
: visible;
top
: 0;
left
: 55px; /*position where enlarged image should offset horizontally */

}

</style>
</head>
<body bgcolor="#ffffff">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<div id="all" align="center">
<div id="top" align="center">
<table border="0" cellspacing="0" width="88%" style="word-break:break-all" align="center">
    <tr>
      <td width="778" align="center" colspan="7" height="193" valign="bottom"><form method="POST" name="form1" action=index.asp>
         <span class="STYLE1">输入搜索内容:</span>
            <input type="text" name="cxsj" size="20">
            <input type="submit" value="提交" name="B1" language="javascript" onClick="btn_ck_bh_Click()">
              <input type="reset" value="重写" name="B2"> <input type="button" name="Submit2" value="产品信息录入" onClick="JavaScript:window.location='product.asp'" />
         
      </form></td>
    </tr>
  </table>
</div>
<div id="content">

 
  <form id="form2" name="form2" method="post" action="delete.asp" onSubmit="return confirm('确定删除吗?')"/>
<table border="1" cellspacing="0" bgcolor="#F0F8FF" bordercolorlight="#4DA6FF" bordercolordark="#ECF5FF" width="88%" style="word-break:break-all" align="center">
<tr>
  <td align="center">&nbsp;</td>
  <td align="center">产品编号</td>
   <td align="center">产品预览</td>
   <td align="center">录入</td>
   <td align="center">操作</td>
  </tr>
<%
'数据库查询
'
获得搜索内容
cx = request("cx")
dim pageCount
'把page转换成整数
page = cint(request("page"))
set conn=server.createobject("adodb.connection")'
set rs=server.createobject("adodb.recordset")
conn.open
"DBQ=" & server.mappath("/Data/ds.mdb") & ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"

' 获取产品的名字记录集(从 news表中)
if cx <> "" then
sql
= "select * from sen where conno like '%"&cx& "%' order by id desc"
else
sql
="select * from sen order by id desc"
end if
rs.open sql,conn,
3,3
'如果没有数据记录
if rs.bof then
errmsg
=errmsg+"<br>"+"<li>"+keyword+"没有记录,请返回!!"
response.write errmsg
response.end
end if

' 设置记录集在每页的总行数,也就是 PageSize属性
RS.PageSize=20
'把rs.pageCount转换成整数和page才能作比较
pageCount = cint(rs.pageCount)
' 设置当前的页号( AbsolutePage属性)
if page = 0 then
page
=1
end if
RS.AbsolutePage
= page
x
=1
' 显示当前页中的所有记录( PageSize中设置的行数)

   
'(当前页-1)*每页记录数+当前页当前记录编号
dim iPage
For iPage=1 to rs.Pagesize

 recno
=(page-1)*rs.pagesize+ipage
WHILE NOT RS.EOF AND NumRows<RS.PageSize

%>
<tr onMouseOver="this.bgColor='#99ccff'" onMouseOut="this.bgColor=''">
<td width="1%" nowrap="nowrap"><input name="checkbox" type="checkbox" id="id" value="<%=rs("id")%>" /><%=recno%></td>
<td width="8%"><p align="center"><%=rs("conno")%></td>
<td width="20%" align="center"><a class="thumbnail" href="view.asp?id=<%=rs("id")%>" target="_blank"><%=rs("name")%><span><img src="<%=rs("img")%>" alt="<%=rs("name")%>"  width="110" border="0"></span></a></td>
<td width="8%"><p align="center"><%=rs("author")%></td>

<td width="20%" align="center"><%if rs("info")=2 then%><%else%><%if rs("info")=1 then%><a href="costmod.asp?id=<%=rs("name")%>"  target="_blank">修改成本</a><%else%><a href="cost.asp?id=<%=rs("id")%>"  target="_blank">添加成本</a><%end if%><%end if%>&nbsp;<a href="costlist.asp?id=<%=rs("name")%>"  target="_blank">查看成本</a>&nbsp;<a href="edit.asp?id=<%=rs("id")%>"  target="_blank">修 改</a></td>
</tr>
<%RS.MoveNext
NumRows
=NumRows+1
WEND
next
%>
<tr onMouseOver="this.bgColor='#99ccff'" onMouseOut="this.bgColor=''">
<td  colspan="4"><input name="chkall" type="checkbox" id="chkall" value="all" onClick="CheckAll(this.form)" />
  删? &nbsp;&nbsp;<input type="submit" name="Submit" value="删除" /></td>
<td width="20%">产品总数:
  <span class="STYLE1"><%Response.Write(rs.RecordCount)
%></span></td>
</tr>
<tr>
<td width="105%" align="center" colspan="5">
<p align="center"><FONT color=#333333><%=PageCount%>页 第<%=page%>页★
<%if page=1 then%>首页<%end if%>
<%if page>1 then%>
<A HREF="index.asp?page=1&cx=<%=cx%>"> 首页</A>
<%end if%>
<%if page>1 then%><A HREF="index.asp?page=<%=page-1%>&cx=<%=cx%>"><%end if%>上一页</a>
<%
dim pagewhere
dim p
p
= 1
'把pagewhere转换成整数
'
pagewhere = cint(request("pagewhere"))
pagewhere = pageCount
if pagewhere>0 then
for p=1 to pagewhere
if p <> page then%>
<A HREF="index.asp?page=<%=p%>&cx=<%=cx%>"><%=p%></a>
<%end if
if p =page then%>
<%=p%>
<% end if
next
end if%>
<%if page < PageCount then%>
<A HREF="index.asp?page=<%=page+1%>&cx=<%=cx%>">
<%end if %>下一页</A>
<%if page=PageCount then%>尾页
<%end if%>
<%if page<PageCount then%>
<A HREF="index.asp?page=<%=PageCount%>&cx=<%=cx%>"> 尾页</A>
<%end if%>
</FONT></p></td> </tr> <tr>
<td width="105%" align="center" colspan="7">搜索内容:<%=cx%></td>
</tr>
</table>
</center></form></div>
<div id="footer"><table border="1" cellspacing="0" bgcolor="#F0F8FF" bordercolorlight="#4DA6FF" bordercolordark="#ECF5FF" width="88%" style="word-break:break-all" align="center">
<tr>
<td width="778" align="center" colspan="7">©CopyRight 2011 znkj.cc <a href="http://bbs.znkj.cc">众诺科技</a> All Rights Reserved. Powered By znkj.cc</td>
</tr>
</table>
</div></div>
</body></html>
<%
rs.close
Set rs=nothing
conn.close
set conn=nothing
%>
只有本站会员才能查看附件,请 登录
但是为什么这样的啊
1