Dynamic sorting of data island data

zhaozj2021-02-16  48

The data island is now more widely used; it will inevitably involve dynamic sorting; two implementations are listed below:

1, set parameters for tag (recommended)

Title Artist Country Company Price Year Year
< / TD>

< XSL: for-each select = "catalog / cd"> <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: styleesheet> </ xml> <script language = "vbscript"> Function Sort (strsortfield STRSORTORDER)</p> <p>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</p> <p>'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</p> <p>'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></p> <p><Script language = "javascript"> function sort2 (xmlObj, xslObj, sortByColName) {var xmlData = eval ( "document.all." XmlObj) .XMLDocument; var xslData = eval ( xslObj "document.all."). XMLDocument; var nodes = xslData.documentElement.selectSingleNode. ( "xsl: for-each"); nodes.selectSingleNode ( "@ order-by") value = sortByColName; xmlData.documentElement.transformNodeToObject (xslData.documentElement, xmlData);} </ script></p> <p></ body> </ html></p> <p>2, directly through the DOM, the flexibility is lacking: <html> <body> <table datarc = "# catalogs" border = 1> <THEAD> <Tr> <TD οnclick = "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></p> <p><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></p> <p><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 , 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>.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-24359.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="24359" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.056</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'JKIZz9Tpgqe0HYGSVUnb3z8NUoIYc_2FUFxOYdQ0mY9az0tTywmP9Mw1mKQKqNHI5Y_2BvKibeGVGDFSQoWQuhLgaA_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>