新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国XML论坛<<     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → 数据岛是否可以排序!!?? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 14221 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 数据岛是否可以排序!!?? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     296458 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:40
      积分:181
      门派:XML.ORG.CN
      注册:2004/3/22

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给296458发送一个短消息 把296458加入好友 查看296458的个人资料 搜索296458在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看296458的博客楼主
    发贴心情 数据岛是否可以排序!!??


    <xml id="users">
    <root>
    <book id="00001">
    <name>网页设计</name>
    <author>蓝色理想</author>
    </book>
    <book id="00002">
    <name>图像处理</name>
    <author>BlueIdea</author>
    </book>
    </root>
    </xml>
    <table id="datatable" datasrc="#users" DATAPAGESIZE="3" width="400" border="1">
    <tr>
      <td><span datafld="id"></span></td>
      <td><span datafld="name"></span></td>
      <td><span datafld="author"></span></td>
    </tr>
    </table>
    <button onclick="document.all.datatable.previousPage()">Previous Page</button>
    <button onclick="document.all.datatable.nextPage()">Next Page</button>
    <button onclick="alert(datatable.rows[1].innerText)">第二行的值</button>
    数据岛翻页可以实现,不知是否可以排序,如果不能,怎么才能实现排序的功能??哪位大哥知道

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/2 10:10:00
     
     孤独 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:大三(面向对象是个好东东!)(版主)
      文章:826
      积分:4220
      门派:XML.ORG.CN
      注册:2004/1/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给孤独发送一个短消息 把孤独加入好友 查看孤独的个人资料 搜索孤独在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看孤独的博客2
    发贴心情 
    现在数据岛被越来越广泛的应用;其中必然会涉及到的就是动态排序了;下面列出两种实现方法:

    1、为<xsl:param>标签设定参数实现动态排序(推荐)
    <html>
    <body>
    <table DATASRC="#catalogs" border=1>
    <thead>
    <tr>
    <td onclick="sort('TITLE','descending');">TITLE</td>
    <td>ARTIST</td>
    <td onclick="sort('COUNTRY','ascending');">COUNTRY</td>
    <td>COMPANY</td>
    <td>PRICE</td>
    <td>YEAR</td>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td ><div DATAFLD="TITLE"></div></td>
    <td ><div DATAFLD="ARTIST"></div></td>
    <td ><div DATAFLD="COUNTRY"></div></td>
    <td ><div DATAFLD="COMPANY"></div></td>
    <td ><div DATAFLD="PRICE"></div></td>
    <td ><div DATAFLD="YEAR"></div></td>
    </tr>
    </tbody>
    </table>

    <xml id="catalogs">
    <CATALOG>
    <CD>
    <TITLE>Empire Burlesque</TITLE>
    Bob Dylan
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
    </CD>
    <CD>
    <TITLE>Burlesque</TITLE>
    Dylan
    <COUNTRY>UA</COUNTRY>
    <COMPANY>umbia</COMPANY>
    <PRICE>1.90</PRICE>
    <YEAR>1987</YEAR>
    </CD>
    <CD>
    <TITLE>Empire</TITLE>
    Bob
    <COUNTRY>US</COUNTRY>
    <COMPANY>bia</COMPANY>
    <PRICE>12.90</PRICE>
    <YEAR>1995</YEAR>
    </CD>
    </CATALOG>
    </xml>

    <xml id="xstyle">
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml"/>
    <xsl:param name="sortorder" select="'descending'"/>
    <xsl:param name="sortfield" select="'xxx'"/>
    <xsl:template match="/">
    <CATALOG>
    <xsl:for-each select="CATALOG/CD">
    <xsl:sort select="*[name()=$sortfield]" order="{$sortorder}" />
    <CD>
    <TITLE><xsl:value-of select="TITLE"/></TITLE>
    <xsl:value-of select="ARTIST"/>
    <COUNTRY><xsl:value-of select="COUNTRY"/></COUNTRY>
    <COMPANY><xsl:value-of select="COMPANY"/></COMPANY>
    <PRICE><xsl:value-of select="PRICE"/></PRICE>
    <YEAR><xsl:value-of select="YEAR"/></YEAR>
    </CD>
    </xsl:for-each>
    </CATALOG>
    </xsl:template>
    </xsl:stylesheet>
    </xml>

    <script language="vbscript">
    function sort(strSortField, strSortOrder)

      dim objXSL, objXML, objTemplate, objProcessor, strHTML, strDrinkType

      Set objXML = CreateObject("Msxml2.FreeThreadedDOMDocument")
      Set objXSL = CreateObject("Msxml2.FreeThreadedDOMDocument")
      
      'Load the XML document
      objXML.async = False
      objXML.Loadxml catalogs.xml  
       
      'Load the XSL document
      objXSL.async = False
      objXSL.Loadxml xstyle.xml
          
      'Create an instance of our XSL Template object
      Set objTemplate = CreateObject("MSXML2.XSLTemplate")
          
      'Create an instance of our stylesheet object using our recently loaded XSLT document
      Set objTemplate.stylesheet = objXSL
           
      'Create an instance of our Processor object
      Set objProcessor = objTemplate.createProcessor

      'Define the input object for our object equal to our recently loaded XML document
      objProcessor.input = objXML

      'Now, finally we can add any parameters that we require to our Template processor
      objProcessor.AddParameter "sortfield", strSortField
      objProcessor.AddParameter "sortorder", strSortOrder
          
      'Last but not least we do our transformation
      objProcessor.Transform
          
      'Store the results of the output into a string.
      strXML = objProcessor.output

      'Load up an XML DOM object from the recent XML output
      objXML.loadxml strXML
      
      'Select only the "employees" elements from our document object
      objXML.selectNodes("//CATALOG")
      
      'Load our Data Island using our new XML object
      catalogs.loadxml  objXML.xml  
    end function  
    </script>

    <script language="javascript">
    function sort2(xmlObj, xslObj, sortByColName)
    {
    var xmlData=eval("document.all."+xmlObj).XMLDocument;
    var xslData=eval("document.all."+xslObj).XMLDocument;
    var nodes=xslData.documentElement.selectSingleNode("xsl:for-each");
    nodes.selectSingleNode("@order-by").value=sortByColName;

    xmlData.documentElement.transformNodeToObject(xslData.documentElement,xmlData);
    }
    </script>

    </body>
    </html>

    2、直接通过DOM实现,灵活性欠缺:
    <html>
    <body>
    <table DATASRC="#catalogs" border=1>
    <thead>
    <tr>
    <td onclick="sort('catalogs','xstyle','TITLE');">TITLE</td>
    <td>ARTIST</td>
    <td>COUNTRY</td>
    <td>COMPANY</td>
    <td>PRICE</td>
    <td>YEAR</td>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td ><div DATAFLD="TITLE"></div></td>
    <td ><div DATAFLD="ARTIST"></div></td>
    <td ><div DATAFLD="COUNTRY"></div></td>
    <td ><div DATAFLD="COMPANY"></div></td>
    <td ><div DATAFLD="PRICE"></div></td>
    <td ><div DATAFLD="YEAR"></div></td>
    </tr>
    </tbody>
    </table>

    <xml id='catalogs'>
    <CATALOG>
    <CD>
    <TITLE>Empire Burlesque</TITLE>
    Bob Dylan
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
    </CD>
    <CD>
    <TITLE>Burlesque</TITLE>
    Dylan
    <COUNTRY>UA</COUNTRY>
    <COMPANY>umbia</COMPANY>
    <PRICE>1.90</PRICE>
    <YEAR>1987</YEAR>
    </CD>
    <CD>
    <TITLE>Empire</TITLE>
    Bob
    <COUNTRY>US</COUNTRY>
    <COMPANY>bia</COMPANY>
    <PRICE>12.90</PRICE>
    <YEAR>1995</YEAR>
    </CD>
    </CATALOG>
    </xml>

    <xml id="xstyle">
    <CATALOG>
    <xsl:for-each select="CD" order-by="+TITLE" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <CD>
    <TITLE><xsl:value-of select="TITLE"/></TITLE>
    <xsl:value-of select="ARTIST"/>
    <COUNTRY><xsl:value-of select="COUNTRY"/></COUNTRY>
    <COMPANY><xsl:value-of select="COMPANY"/></COMPANY>
    <PRICE><xsl:value-of select="PRICE"/></PRICE>
    <YEAR><xsl:value-of select="YEAR"/></YEAR>
    </CD>
    </xsl:for-each>
    </CATALOG>
    </xml>

    <script language="javascript">
    function sort(xmlObj, xslObj, sortByColName)
    {
    var xmlData=eval("document.all."+xmlObj).XMLDocument;
    var xslData=eval("document.all."+xslObj).XMLDocument;
    var nodes=xslData.documentElement.selectSingleNode("xsl:for-each");
    nodes.selectSingleNode("@order-by").value=sortByColName;

    xmlData.documentElement.transformNodeToObject(xslData.documentElement,xmlData);
    }
    </script>
    </body>
    </html>

    ----------------------------------------------
    <?xml version="1.0" encoding="gb2312"?>
    <个人签名>
      <Website>[url=http://www.mahaobo.cn]
    MaHaobo.cn[/url]
    </Website>
    <Email>aloning(at)gmail.com</Email>
      <Qq >32113739</Qq>
    </个人签名>

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/2 12:35:00
     
     296458 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:40
      积分:181
      门派:XML.ORG.CN
      注册:2004/3/22

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给296458发送一个短消息 把296458加入好友 查看296458的个人资料 搜索296458在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看296458的博客3
    发贴心情 
    thank you 版主!!!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/2 13:13:00
     
     小鞋子 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      头衔:大法師
      等级:大二期末(Java考了96分!)
      文章:353
      积分:958
      门派:XML.ORG.CN
      注册:2003/12/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给小鞋子发送一个短消息 把小鞋子加入好友 查看小鞋子的个人资料 搜索小鞋子在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看小鞋子的博客4
    发贴心情 
    应该早几天发出来...吐血.害我迷惑了好几天...

    ----------------------------------------------
    本人只會一點點XML.
    和ASP.以及FLASH.其它都不太懂.

    大家多多指教.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/2 13:31:00
     
     diegor 帅哥哟,离线,有人找我吗?白羊座1979-4-10
      
      
      威望:4
      等级:大二(研究C++)|大二(研究汇编)
      文章:266
      积分:806
      门派:XML.ORG.CN
      注册:2004/3/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给diegor发送一个短消息 把diegor加入好友 查看diegor的个人资料 搜索diegor在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看diegor的博客5
    发贴心情 
    以下是引用小鞋子在2004-4-2 13:31:16的发言:
    应该早几天发出来...吐血.害我迷惑了好几天...

    不是吧,似乎你不该为这样的问题发愁吧,好多人都在指望你呢, :0

    ----------------------------------------------
    坚决支持XML!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/2 17:01:00
     
     lostgdi 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:55
      门派:XML.ORG.CN
      注册:2006/5/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lostgdi发送一个短消息 把lostgdi加入好友 查看lostgdi的个人资料 搜索lostgdi在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lostgdi的博客6
    发贴心情 
    我觉得贴原理和分析远好过贴代码啊。
    一看到一大堆代码,我就没看了。不过看到原来是用javascript实现的,那么就不关xml自身的排序问题啦?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/8 16:04:00
     
     iusms 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:60
      门派:XML.ORG.CN
      注册:2006/5/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给iusms发送一个短消息 把iusms加入好友 查看iusms的个人资料 搜索iusms在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看iusms的博客7
    发贴心情 
    不错。

    ----------------------------------------------
    收集的网站: 免费查询网站http://www.iusms.com alexa世界排名查询:http://www.iusms.com/alexa IP查询  http://www.iusms.com/IP 更多查询:http://www.iusms.com/mine.asp

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/9 8:57:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/6/21 17:57:59

    本主题贴数7,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    82.031ms