xsl 格式化 xml 如何分页显示?

myy 2005-01-06 04:01:14
我把数据库表的数据输出为成统一格式的xml,然后用xsl变成html(客户端IE转换),
但是遇到数据量大的表,需要分页显示,请问做过类似程序的朋友介绍介绍经验。


不胜感谢!
...全文
730 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
slightboy 2005-03-22
  • 打赏
  • 举报
回复
可以去看看 CGA 评论部分
cuixiping 2005-01-28
  • 打赏
  • 举报
回复
倾听
myy 2005-01-13
  • 打赏
  • 举报
回复
利用数据库或服务器端进行分页的难题就是页面的导航不太方便,我有两种想法:

1。在xml中增加分页的各种信息,比如总页数,当前页号...等等,然后xsl利用这些信息动态
生成导航条,优点是界面统一,缺点是xsl中动态生成 javascript和带参数的url比较难
(也许是我太菜,不会)。

2。在页面的布局上采用 主页面+iframe 的方式,查询提交到iframe中显示,导航在主页面,
但这样也有复杂度,不过对于有复杂查询条件组合的情况很适合...


菜鸟的一些粗浅想法,当是抛砖引玉吧,请大家批评指正!
precipitant 2005-01-13
  • 打赏
  • 举报
回复
做两个数据岛,你个存储大量数据,一个存储查询数据。不过难度也挺大。
precipitant 2005-01-12
  • 打赏
  • 举报
回复
各有利弊。权衡可以根据情况看能否设计两极分页,即载入数据时通过存储过程先分页(大页),然后在客户端生成数据岛,再根据上述方法分页,可以避开大数据量一次载入和浏览器的解析等问题对服务器和客户端性能的影响。
zhmt 2005-01-11
  • 打赏
  • 举报
回复
我建议分页放在后台处理,xsl+xml只管解析。因为当数据量太大时,客户端的解析速度是很慢的,甚至解析到浏览器当掉。

不过 你要是真的想看这种分页的话,你可以看我以前做的一个例子(是一个通讯录的例子),很早时做的了,现在看起来我都觉得很垃圾(主要是很不规范),不过,它实现了在客户端分页(人名列表那里是在客户端分页的)。地址:http://yhtq.anyp.cn/040531100858015.aspx

你说的不错,“xsl不变,xml经常变化”是xsl+xml的一大强项。
ssm1226 2005-01-11
  • 打赏
  • 举报
回复
对于数据量较大的,使用XML分页时

最好在获取XML时,利用数据库或服务器端进行分页
不建议将所有数据分部获取生成XML后,使用DOM或xsl进行分页~~~~
precipitant 2005-01-10
  • 打赏
  • 举报
回复
你们的方法我都研究了一下,孟兄的方法符合楼主的要求:用xsl对xml数据的分页显示。
但是孟兄的程序有一个较大的缺点,就是不能所有数据统一排序,而是按顺序显示,然后只在当前页中排序。

而不买日货的兄弟的方法使用脚本直接输出,并用ado --> recordset 控制分页,写程序简单,控制分页和排序也很简单。但是没有使用xsl

可以说两种方法各有特点。而且都是将数据调到客户端,用客户端脚本实现,这样可以将很多操作都转移到客户端完成,如果用户对一个查询记录集反复操作的话,能很好的减轻服务器的负担。但是如果数据总量特别大,而用户对一个查询记录集不反复操作,或者只反复操作一两次的话,就会加重服务器的负担。
redez 2005-01-10
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3645/3645803.xml?temp=.6115381
myy 2005-01-10
  • 打赏
  • 举报
回复
谢谢各位朋友的回答和关注!

我现在想做的工作是用 xsl+xml 来自动生成数据库数据的维护页面,以前是用jsp直接写的,
采用的是网上流传的“套3层”的sql语句来分页,效率非常高,导航器也可以自动生成。

孟兄的程序的方法我早就研究过了,是在客户端分页,这样对于大数据量还是要
全部查出并下载到客户端(其实,用户一般不会全部看那么多页的),不太好。

zlj113 米老鼠兄弟的方法其实跟我原来的jsp的方法原理一样的,没有xsl。


采用xsl+xml 以后,因为相关的页面生成在移到xsl中了,jsp只输出“纯”xml数据,
但xsl本身也不太好变成动态的,这样一来,这个分页就不太好做了。

我现在感觉到,xsl + xml 这种方式好象只适合于 xsl不变,xml经常变化,并且页面
的用户交互比较少或很一致的场合,不知道对不对?
precipitant 2005-01-09
  • 打赏
  • 举报
回复
先丁一下,一会回来
precipitant 2005-01-09
  • 打赏
  • 举报
回复
先丁一下,一会回来
zlj113 2005-01-08
  • 打赏
  • 举报
回复
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>
zlj113 2005-01-08
  • 打赏
  • 举报
回复
<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>
孟子E章 2005-01-06
  • 打赏
  • 举报
回复
http://lucky.myrice.com/xml/xpathexam2.htm
myy 2005-01-06
  • 打赏
  • 举报
回复
ding

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧