我在给客户开发WEB程序,例如对查询出的结果,在网页的table上进行排序,就是
用户比例点击某table标题,就对这一列进行升降配序!
---------------------------------------------------------------
http://expert.csdn.net/Expert/TopicView1.asp?id=1514463
---------------------------------------------------------------
这个如果用XML根本就不是问题:
《XML创建可排序、分页的数据显示页面》
http://www.programfan.com/showarticle.asp?id=1925
---------------------------------------------------------------
呵.
http://www.5inet.net/corp/list_stone.asp
看看.用asp就最简单了.
---------------------------------------------------------------
http://www.csdn.net/Develop/list_article.asp?author=net_lover&myclassid=80&myclassName=JavaScript
---------------------------------------------------------------
var dom = (document.getElementsByTagName) ? true : false;
var ie5 = (document.getElementsByTagName && document.all) ? true : false;
var arrowUp, arrowDown;
if (ie5 ¦ ¦ dom)
initSortTable();
function initSortTable() {
arrowUp = document.createElement("SPAN");
var tn = document.createTextNode("5");
arrowUp.appendChild(tn);
arrowUp.className = "arrow";
arrowDown = document.createElement("SPAN");
var tn = document.createTextNode("6");
arrowDown.appendChild(tn);
arrowDown.className = "arrow";
}
function sortTable(tableNode, nCol, bDesc, sType) {
var tBody = tableNode.tBodies[0];
var trs = tBody.rows;
var a = new Array();
for (var i=0; i
1<trs.length; ""));="" "1="" "1,000,000"="" "100cm"="" '="" '));="" (as="" (ftypecast(getinnertext(n1.cells[c]))="" (n1,="" (stype="CaseInsensitiveString" (var="" )="" *="" +1;="" -1="" 000="" 000"="" :="" <="" ?="" [^0-9\\.]="" \\-="" a="" a.sort(comparebycolumn(ncol,bdesc,stype));="" a[i]="trs[i];" allow="" alternative="" as="" bdescending,="" be="" but="" c="nCol;" can="" caseinsensitivestring(s)="" characters="" comparebycolumn(ncol,="" d="" date.parse(s.replace(="" else="" follow="" for="" ftypecast="CaseInsensitiveString;" ftypecast(getinnertext(n2.cells[c])))="" function="" g,="" handle="" i="0;" i++)="" i<a.length;="" if="" in="" is="" like="" lot="" more)="" n2)="" non="" number="" number(s.replace(="" numerical="" one="" parsedate(s)="" return="" slower="" string="" string(s).touppercase();="" strings="" stype)="" tbody.appendchild(a[i]);="" the="" this="" to="" tonumber(s)="" used:="" var="" well="" {="" }=""> fTypeCast(getInnerText(n2.cells[c])))
2return d ? +1 : -1;
3return 0;
4};
5}
6
7function sortColumn(e) {
8var tmp, el, tHeadParent;
9if (ie5)
10tmp = e.srcElement;
11else if (dom)
12tmp = e.target;
13tHeadParent = getParent(tmp, "THEAD");
14el = getParent(tmp, "TD");
15if (tHeadParent == null)
16return;
17
18if (el != null) {
19var p = el.parentNode;
20var i;
21if (el._descending) // catch the null
22el._descending = false;
23else
24el._descending = true;
25
26if (tHeadParent.arrow != null) {
27if (tHeadParent.arrow.parentNode != el) {
28tHeadParent.arrow.parentNode._descending = null; //reset sort order
29}
30tHeadParent.arrow.parentNode.removeChild(tHeadParent.arrow);
31}
32if (el._descending)
33tHeadParent.arrow = arrowDown.cloneNode(true);
34else
35tHeadParent.arrow = arrowUp.cloneNode(true);
36el.appendChild(tHeadParent.arrow);
37
38// get the index of the td
39for (i=0; i<p.cells.length; i++) {
40if (p.cells[i] == el) break;
41}
42var table = getParent(el, "TABLE");
43// can't fail
44
45sortTable(table,i,el._descending, el.getAttribute("type"));
46}
47}
48
49function getInnerText(el) {
50if (ie5) return el.innerText; //Not needed but it is faster
51
52var str = "";
53
54for (var i=0; i<el.childNodes.length; i++) {
55switch (el.childNodes.item(i).nodeType) {
56case 1: //ELEMENT_NODE
57str += getInnerText(el.childNodes.item(i));
58break;
59case 3: //TEXT_NODE
60str += el.childNodes.item(i).nodeValue;
61break;
62}
63
64}
65
66return str;
67}
68function getParent(el, pTagName) {
69if (el == null) return null;
70else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) // Gecko bug, supposed to be uppercase
71return el;
72else
73return getParent(el.parentNode, pTagName);
74}</trs.length;>