如何在jQuery DataTable中绘制Excel样式的数据栏
How do I draw Excel-style data bars in a jQuery DataTable?
我想在jQuery DataTables表的选定列中的值后面添加数据栏,就像Excel中的"数据栏条件格式"选项一样。
这个答案展示了如何使用jqGrid实现这类功能的解决方案。如何在DataTables中实现类似的效果?
使用fnRowCallback((应该很容易。
我手头没有我的示例代码,但可以说,如果您在datatables.net上使用fnRowCallback的示例,您可以使用数据值来创建一个适当宽度的div。让我试着在没有真实世界测试的情况下把它破解在一起…
假设传入数据(aData(和呈现的HTML中的可见数据在同一列中(即没有隐藏列(。让我们进一步假设该列为4(从零开始(,aData中的值表示百分比:
"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
var myValue = aData[4];
$('td:eq(4)', nRow).html( '<div class="excelBar" style="width:' + myValue + '"></div>' );
return nRow;
},
这是一个超级简化的例子。它所做的是获取当前行第4列中的值(您可以在这里进行更多的逻辑转换;我假设它已经以百分比的形式出现(,修改渲染html中第4列的html,使其包含与已找到的值宽度相同的div。修改后,它返回行的新值(即重新格式化的行(。
它还有更多……必须已经有了CSS来促进它成为一个栏(display:block,etc.(,但这就是它的长短。
尝试使用这样的fnRender方法,但添加这样的样式div:
fnRender: function (object) {
return "<div style=width: "+obj.data[0]+"%; />"
}
无法评论如此新的答案。我不得不对已接受的答案做一个小改动,并在div宽度中添加"px":
"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
var myValue = aData[4];
$('td:eq(4)', nRow).html( '<div class="excelBar" style="width:' + myValue + 'px"></div>' );
return nRow;
},
Databar开箱即用:
$("table").dataTable({}, $("table").databar());
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 将样式表插入iframe
- 跟踪在页面加载时应用内联样式的JavaScript
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 定义完全独立的样式信息
- 将HTML表格导出到excel时,无法将数据加载到excel文件中
- W3C循环样式的JavaScript
- jQuery/JavaScript在线公文包表单-打印样式表
- 使用递归、Ramda.js和无点样式重构字符串的getPermutations()
- FF和Chromium中CSS样式按钮的外观差异
- 提交按钮,该按钮位于使用 Excel VBA 的 Javascript 中
- 如何首先设置样式<td>表中包含在窗体中的元素
- javascript问题正文样式
- 使用具有内联样式的tidy-html5
- 具有固定顶行和左列的Excel样式HTML表格的更好实现?(jsFiddle 示例)
- 如何在jQuery DataTable中绘制Excel样式的数据栏
- 当使用ActiveX从Javascript写入Excel时,无法识别边框类型和线条样式
- 使用样式表在代码点火器中生成Excel工作表
- Javascript数组到Excel -样式
- 如何使用jQuery复制excel样式的表格单元格