SortView - JavaScript 排序控件(v1.1)

介绍

SortView 是用于显示排序按钮/链接的控件, 并包含 js 排序功能. 这些排序控件附加在指定的 HTMLElement 里. 结合 TableView, 可以实现非常强大的数据表格功能. SortView 可单独使用, 但依赖 jQuery 库.

示例

Id Name 中文名 Text 输入
<table>
	<tr>
		<th field="id">Id</th>
		<th field="name">Name</th>
		<th field="name_cn">中文名</th>
		<th field="text">Text</th>
		<th field="input">输入</th>
	</tr>
</table>

<script type="text/javascript">
<!--
var rows = []; // datasource

var sort = new SortView();
sort.fields = {
	'id'	: ['int', null],
	'name'	: [null, null]
};

var elements = {};
var ths = $('table th').each(function(i, th){
	var k = $(th).attr('field');
	if(k != undefined){
		elements[k] = th;
	}
});
sort.onclick = function(field, order){
	sort.sort(rows);
	// do with rows...
}

sort.render(elements);
//-->
</script>

API文档

查看API文档

开发指导

创建

SortView 的工作原理是将排序链接/按钮附加到指定节点内部, 这些节点可以是 div, 或者表格单元格. SortView.fields 定义了各个字段的数据类型和排序函数.

<div id="id_div"></div>
<div id="name_div"></div>

<script type="text/javascript">
<!--
var sort = new SortView();
sort.fields = {
	'id'	: ['int', null],
	'name'	: [null, null]
};
var elements = {
	'id' : document.getElementById('id_div'),
	'name' : document.getElementById('name_div')
};
sort.render(elements);
//-->
</script>

SortView.render() 方法接受要添加入排序链接/按钮的节点列表(HTMLElement).

排序事件

重写 SortView.onclick 方法, 可捕获排序字段. 其两个参数指示是哪个字段要排序, 以及排序的方向.

sort.onclick = function(field, order){
	sort.sort(rows);
	// do with rows...
}

排序函数

SortView.sort() 是一个内置的排序函数, 可对 JavaScript 对象的数组进行排序, 默认进行自然排序.