对数据岛数据实现动态排序二法[2]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 colee 的 blog

 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>

本文关键:xmlDSO,xmldom,xsl,动态排序
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top