我想添加到BIRT表和交叉表控制以下功能:当我点击特定列的标题时,数据按照此列按升序或降序排序。
我发现this trick使用参数对服务器端的数据进行排序,但我不想在服务器端进行排序。但是,我想在客户端使用JavaScript进行此操作。
请提供任何提示?
答案 0 :(得分:1)
通常我为此嵌入Datatables。它简单,功能强大,并且具有良好的文档。
您可以访问BIRT table with Datatable here的现场演示。如您所见,所有钻取超链接操作和样式都保持不变。
基本上我们需要在报告的末尾添加一个HTML文本,将类型设置为“HTML”,并使用“head.js”在脚本标记中加载jquery和datatable。例如:
<script>
head.load("//cdn.datatables.net/1.10.9/css/jquery.dataTables.min.css","//cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js",function(){
console.log("DataTables framework loaded...");
$("#myTableID").DataTable(); //"myTableID" should be the bookmark of the table
console.log("Interactive table is ready!");
});
</script>
使用BIRT书签属性为表格设置ID。请注意,如果你的BIRT发射器没有在HTML表格中生成“thead”标签(只需检查html输出以查看是否生成了thead标签),你需要通过脚本修复它:移动第一行“在调用“DataTable()”函数之前,使用jquery“进入”thead“标记。确实,它需要一点点javascript知识,但正如你所看到的那样非常值得!