smhy8187

 

xml 分页

http://topic.csdn.net/t/20050106/16/3704422.html


<html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <title>xml</title>  
  <xml   id="xmlid"   src="xml.asp"   async="false"></xml>  
  <style   type="text/css">  
  <!--  
  body,td,th   {  
  font-size:   12px;  
  }  
  -->  
  </style></head>  
   
  <body   onLoad="list1   (1)"   >  
  <script   language="vbscript">  
  function   list(page)  
  set   rs=xmlid.recordset  
  rs.pagesize=15  
  dd=rs.pagecount  
  if   page<=dd   then  
  rs.absolutepage=page  
  str="   "  
  str=str&   "<table   width='94%'   border='0'   align='center'   cellpadding='0'   cellspacing='1'   bgcolor='#336699'><tr   align='center'   bgcolor='#C0CCcc'>"  
  for   i=0   to   rs.fields.count-2  
  str=str&   "<td>"  
  str=str&   rs(i).name  
  str=str&   "</td>"  
  next  
  str=str&   "<tr>"  
  j=0  
  while   not   rs.eof    
  if   j<=14   then  
  str=str&   "<tr   align='center'   bgcolor='#FFFFFF'>"  
  for   i=0   to   rs.fields.count-2  
  str=str&   "<td>"  
  str=str&   rs(i)  
  str=str&   "</td>"  
  next  
  str=str&   "</tr>"  
  end   if  
  j=j+1  
  rs.movenext  
  wend  
  str=str&   ("</table>")  
  pagepage.innerHTML=str  
  document.page.pageno.value=page  
  else  
  msgbox   "数据不够,总共才"   &   dd   &"页"  
  end   if  
   
  end   function  
  function   list1(page)  
  if   xmlid.readystate=4   then  
  list   page  
  else  
  settimeout   "list1"   &page,1  
  end   if    
  end   function  
  //---------------------------  
  sub   to_onclick  
  list1   int(document.page.pageno.value)  
  end   sub  
  //----------------------  
   
  sub   last_onclick  
  set   L_rs=xmlid.recordset  
  L_rs.pagesize=15  
  last1=L_rs.pagecount  
  //msgbox   last1  
  list1   Last1  
  end   sub  
   
   
  sub   frist_onclick  
  list1   1  
  end   sub  
   
  sub   next_onclick  
  list1   int(document.page.pageno.value+1)  
  end   sub  
   
  sub   before_onclick  
  list1   int(document.page.pageno.value-1)  
  end   sub  
  </script>  
  <div   id=pagepage   align="center"></div>  
   
   
  <center><form   name="page">  
  <input   name="pageno"   type="text"   value="1"   size="4">  
          
    <input   type="button"   value="goto"   name="to">  
    <table   width="53%"   height="43"     border="0"   cellpadding="0"   cellspacing="0">  
    <tr   align="center">  
    <td   id="last"><a   href="#">最后一页</a></td>  
    <td   id="before"><a   href="#">上一页</a></td>  
    <td   id="next"><a   href="#">下一页</a></td>  
    <td   id="frist"><a   href="#">第一页</a></td>  
    </tr>  
    </table>  
  </form>  
           
  </center>  
  </body>  
  </html>  


xml.asp:  
   
  <!--#include   file="conn.asp"-->  
  <%  
  set   rs=server.createobject("adodb.recordset")  
  sql="select   *   from   student"  
  rs.open   sql,conn,1,1  
  %>    
  <?xml   version="1.0"   encoding="gb2312"?>  
    <students>  
  <%   if   not   rs.eof   then  
    while   not   rs.eof   %>  
    <student>  
    <ID><%   =   rs("stu_id")%></ID>  
  <姓名><%   =   rs("stu_name")%></姓名>  
  <年龄><%   =   rs("stu_age")   %></年龄>  
  <籍贯><%   =   rs("stu_from")   %></籍贯>  
  <电话><%   =   rs("stu_tel")%></电话>  
  <性别><%   =   rs("stu_sex")   %></性别>  
    </student>  
    <%rs.movenext  
    wend  
    end   if%>  
    </students>



你们的方法我都研究了一下,孟兄的方法符合楼主的要求:用xsl对xml数据的分页显示。  
  但是孟兄的程序有一个较大的缺点,就是不能所有数据统一排序,而是按顺序显示,然后只在当前页中排序。  
   
  而不买日货的兄弟的方法使用脚本直接输出,并用ado   -->   recordset   控制分页,写程序简单,控制分页和排序也很简单。但是没有使用xsl  
   
  可以说两种方法各有特点。而且都是将数据调到客户端,用客户端脚本实现,这样可以将很多操作都转移到客户端完成,如果用户对一个查询记录集反复操作的话,能很好的减轻服务器的负担。但是如果数据总量特别大,而用户对一个查询记录集不反复操作,或者只反复操作一两次的话,就会加重服务器的负担。

---------------------------------------------------------------------------------
对于数据量较大的,使用XML分页时  
   
  最好在获取XML时,利用数据库或服务器端进行分页  
  不建议将所有数据分部获取生成XML后,使用DOM或xsl进行分页~~~~

posted on 2007-06-11 14:42  new2008  阅读(299)  评论(0编辑  收藏  举报

导航