新微赢技术网

标题: 分类再分页的页码的问题的问题,(高人指点下啊,4楼更新问题,8楼更新思路 ... [打印本页]

作者: 々無極風嘯々    时间: 2010-1-9 04:09
标题: 分类再分页的页码的问题的问题,(高人指点下啊,4楼更新问题,8楼更新思路 ...
我搞了个薪资系统,1个页面包含了所有部门的工资。。。
先是分类进行分页,然后每30条记录进行了分页。。。
因为公司里面的这些东西都要有  第X页  共X页。。。
这个东西就把我搞迷糊了。。。
这个 共X页 是所有部门及部门分页的总数。。。
第X页 就更迷糊了,但是我有将部门进行排序。。。

哪位高人指点下该如何自动排出  第X页  共X页呢???

[[italic] 本帖最后由 letla 于 2007-12-27 15:41 编辑 [/italic]]
作者: 52巧克力aiq    时间: 2010-1-9 04:09
如你解释的一样,我觉得实现按类分页,分好的页面里面再按照每页30个记录分子级页。
页面可以不可以这样设计,下面一个是按类分页!
点击我们所要选的类别的按钮,读取class参数,
用"select * from [表格] where class="&class
实现同类元素的筛选!
然后子级的分类可以不可以是这样
例如:view_byclass.asp?class=<%rs("class")%>&page=5
view_byclass.asp
程序代码:
<!--#include file="conn.asp"-->
<%
Dim class
class=request("class")
Set rs=Server.CreateObject("ADODB.Recordset")
if class="" then
Sql="select * from [表格]"
else
Sql="select * from [表格] where class="&class
end if
rs.Open Sql,Conn,1,1
if request("page")="" then
page=1
elseif request("page")<1 then
page=1
else
page=request("page")
end if

rs.PageSize=12 '每页显示几个记录
rs.AbsolutePage=page
if rs.RecordCount=0 then
Response.Write "没有记录"
else
%>


<%
if rs.eof then
Response.Write "没有相关记录"
else
response.write ("<table width=500 border=0 cellspacing=0 cellpadding=1><tr>")


for ipage=1 to rs.pagesize
response.write ("<td>")
response.write rs("p_info_name") '您需要显示的字段
response.write ("</td>")
j=j+1

m=4 '假如您是一行4条记录。修改成需要的一行几条

If j>m-1 Then

Response.Write "</tr><tr>"
j=0
End If


rs.movenext

if rs.eof then exit for
next
Response.Write "</tr></table>"
%>

<%
end if
end if
%>
<div align="center"> <%=rs.recordcount%>条记录
当前第<%=page%>页/共有<%=rs.pagecount%>页<a href="view_byclass.asp?class=<%rs("class")%>&page=1"><font color="#000000">首页</font></a>
<% if page<>1 then %>
<a href="view_byclass.asp?class=<%rs("class")%>&page=<%=(page-1)%>"><font color="#000000">下页</font></a>
<%else%>
上间
<% end if %>
<% if page<>rs.pagecount then
if page+1>rs.pagecount then
page=rs.pagecount-1
end if
%>
<a href="view_byclass.asp?class=<%rs("class")%>&page=<%=(page+1)%>"><font color="#000000">下页</font></a>
<%else%>
下间
<% end if %>
<a href="view_byclass.asp?class=<%rs("class")%>&page=<%=rs.pagecount%>"><font color="#000000">尾页</font></a></div>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
'下面显示分类列
%>
<%
set rs=server.createobject(ADODB.recordset)
sql="select * from class by id desc"
rs.open sql,conn,3,3
do while not eof
%>
<a href="view_byclass.asp?class=<%rs("class")%>"><%rs("class")%></a>
<%
rs.movenext
loop
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
效果差不多就是下面这样~~
1 2 3 4 5 6 7 9...        当前第2类下元素分页
1 2 3 4 5 6 7 8 9 10   按类分页

[[italic] 本帖最后由 xmuer 于 2007-12-27 15:28 编辑 [/italic]]
作者: 青苹果    时间: 2010-1-9 04:09
第<%=rs.absolutepage%>页 共<%=rs.pagecount%>页
作者: 訫譩    时间: 2010-1-9 04:10
历史问题还没解决,,,顶起来先。。。
作者: ┗白觀喑﹖    时间: 2010-1-9 04:10
我这个的根据我们公司的情况来做的。。。
我这个页面不光包含了部门,还包含了月份的。。。
我本身也是初学ASP,很多函数什么的都还不懂。。。
现在只是一知半截。。。
我这样做是为了方便打印报表,才把上下一页隐藏起来了。。。
因为整站用到了伪静态技术,所以页面也是随便取的名字。。。
最主要是的需要能自动获取页码。。。

我自己已经有一个思路,但是不知道该如何取这个值。。。
在总表内创建2个字段,这里暂时定义为A,B。
1个为部门的当前页码,1个为部门的总页码。
当打开第一个部门的报表的时候update到总表。。。
IF为第一条记录,then当前页码=2
用记录数/30+1取整。。。得到第一个部门的总页码。。。
打开第二个部门的时候读取总表内上一个部门的当前页码+总页码=第二个部门的当前页码。。。
然后用用记录数/30+1取整。。。得到第二个部门的总页码。。。
打开第三个部门的时候读取总表内上一个部门的当前页码+总页码=第三个部门的当前页码。。。
然后用用记录数/30+1取整。。。得到第三个部门的总页码。。。
已此类推,但是具体该怎么获取上一条记录字段内的数据我还是没找到合适的答案。。。
网上找了很多都没能用上。

希望高人能帮忙写一个适合我附件的读取总表的上一条记录,和判断第一条记录的语句。。。
拜托拜托。。。

[[italic] 本帖最后由 letla 于 2007-12-27 15:45 编辑 [/italic]]
作者: ヤforget♀戀    时间: 2010-1-9 04:10
[admin_product.asp页面]
... ...
<%
sql="select * from news order by news_no desc"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,3
%>
<%If IsNumeric(Request("Page"))=false Or Request("Page")="" Then
                Page=1
            Else
                Page=CInt(Request("Page"))
            End if        
            Rs.PageSize=15    %>
<%if rs.bof and rs.eof then
   response.write"暂时还没有发布产品!"
   else%>
      您已发布<%=rs.recordcount%>件产品.
      <%myPageSize=Rs.PageSize
                Rs.AbsolutePage=Page
                Do While not Rs.Eof And myPageSize>0
%>
这里是循环的内容
<%    myPageSize=myPageSize-1
            i=i+1
            Rs.MoveNext
            Loop
      %><%end if%>
<br>  
????产品总数:<%=Rs.RecordCount%>个;每页显示:<%=Rs.PageSize%>个;第<%=Page%>页/共<%=Rs.PageCount%>页.            
<%               
If Page > 1 Then
Response.Write "<a href='admin_product.asp?Page=1' title='首页'><font face=webdings>" & 9 & "</font></a>"
Response.Write "?<a href='admin_product.asp?Page="&Page-1&"' title='上一页'><font face=webdings>" & 7 & "</font></a>"
End If
For j = 1 To Rs.PageCount     
Response.Write "?<a href='admin_product.asp?Page="&j&"'>" & j & "</a>"   
Next
If Page < Rs.PageCount Then
Response.Write "?<a href='admin_product.asp?Page="&Page+1&"' title='下一页'><font face=webdings>" & "8" & "</a></font>"
End If
Response.Write "?<a href='admin_product.asp?Page="&Rs.PageCount&"' title='尾页'><font face=webdings>:</a>"
%>
<%
Rs.Close
Set Rs=nothing
%>
按分类查看:
<%
    set rs=server.CreateObject("ADODB.recordset")
    sql="select * from class"
    rs.open sql,conn,3,3
    %>
    <select name="class" onchange="Javascript:window.location.href='admin_viewbyclass.asp?class='+this.value;" id="p1">
    <option selected  value="全部">--全部分类--</option>
    <%do while not rs.eof%>
    <option value="<%=rs("class")%>">--<%=rs("class")%>--</option>
    <%
    rs.movenext
    loop
    rs.close
    set rs=nothing
    %>
         </select>
... ...

[admin_viewbyclass.asp]页面
<%
Dim id
id=Request("class")
Set rs= Server.CreateObject("ADODB.Recordset")
if id="全部" then
sql="select * from news"
else
sql="select * from news where class='"&id&"'"
end if
rs.open sql,conn,3,3
%>
... ... 下面也是和admin_product.asp一样的,循环显示,分页等,不在详述!

[[italic] 本帖最后由 xmuer 于 2007-12-22 16:07 编辑 [/italic]]
作者: 单身中    时间: 2010-1-9 04:10
帮帮忙啊...
作者: 天语悠悠    时间: 2010-1-9 04:10
先谢谢两位,但是楼上两位都没看懂我的意思。。。
我具体的解释一下吧。。。请先看下图。。。

总表是一个文件。。。页码是第一页。。。
下面的所有部门是一个文件。。。
厂务部 第2页
PMC部  第3页
塑胶部 第4页
品质部 第6页 (因为塑胶部有2页)
喷油课 第7页
丝印课 第9页 (因为喷油课有2页)
包装课 第10页

喷涂二部 第1页 (喷涂二部没录入总表的)

我现在的做法是手工总表添加了一个部门页码。。。
这个方法可以用,但是太麻烦了。。。
再附原文件


再帮忙看看啊。。。拜托了。。。 附件: 只有本站会员才能下载或查看附件,请您 登录 或 注册




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2