jquery实现报表点击表头排序

利用参数和宏实现报表中点击表头排序功能,该方式实现的表头排序,需要进行页面刷新,实际上要重新进行报表运算。本文利用jquery和TableSort插件实现报表的客户端排序,能减轻对服务器造成的负担,也能给用户带来更好的体验。

插件使用说明:
 插件功能:把html的table转化为可排序的table,支持页面静态排序,无刷新。支持多种数据类型排序(字符串,数字,日期等)
 使用方式:
1、给标题行添加自定义属性role=”head”
2、标题行中需要排序的列添加自定义属性sort=”true”
3、调用扩展方法,如:$(“#report1″).sorttable();
参数说明:
sorttingMsg: 排序时显示的文字(默认为”排序中……”),
sorttingMsgColor: 排序时显示的文字的颜色(默认为”#FFF”),
allowMask: 是否允许遮罩层(默认为true),
maskOpacity: 遮罩层的透明度(默认为”0.5″),
maskColor: 遮罩层的颜色(默认为”#000″),
ascImgUrl: 升序图片(默认为不显示),
ascImgSize: 升序图片大小(默认为”8px”),
descImgUrl: 降序图片(默认为不显示),
descImgSize: 降序图片大小(默认为”8px”)
onSorted(cell): 排序完成回调函数(参数:cell,当前排序列的头(一般是th或者td的jquery对象))

应用示例:
报表展现页面部分代码:
<head>
<title>sorttable</title>
<!-引入相关的样式文件和js文件>
<link href=”../Styles/Site.css” rel=”stylesheet” type=”text/css” />
<script src=”../Scripts/jquery-1.4.1.min.js” type=”text/javascript”></script>
<script src=”../Scripts/JQueryPlugin/TableSort.js” type=”text/javascript”></script>
<script type=”text/javascript”>
$(function () {
$(“#report1″).sorttable({
ascImgUrl: “../Images/bullet_arrow_up.png”,
descImgUrl: “../Images/bullet_arrow_down.png”,
ascImgSize: “8px”,
descImgSize: “8px”,
onSorted: function (cell) {
//排序完成后,弹出排序列序号和名称
alert(cell.index() + ” — ” + cell.text());

});
});
</script>
</head>
……
<report:html name=”report1″ reportFileName=”测试/test.raq”
needSaveAsWord=”yes”
needSaveAsPdf=”yes”
needSaveAsExcel=”yes”
/>
报表模板:

示例数据位设计器demo数据库中的客户表。
其中:
A1单元格中使用HTML格式数据类型,内容为:
<tr role=”head” style=”background-color: #ddd;height:40px” >
<th sort=”true” style=”border:1px solid #999999;height:10px”>
客户ID
</th>
<th sort=”true” style=”border:1px solid #999999;”>
公司名称
</th>
<th sort=”true” style=”border:1px solid #999999;”>
电话
</th>
<th sort=”true” style=”border:1px solid #999999;”>
联系人姓名
</th>
<th sort=”true” style=”border:1px solid #999999;”>
联系人职务
</th>
</tr>
在该单元格中实现了table的表头,为表头行添加了属性role=”head”;并为表头行中的排序列添加了属性sort=”true”。
最后需要把该单元格的高度调整为0。

实现效果:
对公司名称升序排列效果:



点击公司名称降序排列后,弹出提示框:

热门文章