Javascript 如何在jQuery数据表中绘制Excel样式的数据栏?
我希望在jQuery DataTables表的选定列中的值后面添加数据栏,如Excel中的Javascript 如何在jQuery数据表中绘制Excel样式的数据栏?,javascript,jquery,jquery-datatables,Javascript,Jquery,Jquery Datatables,我希望在jQuery DataTables表的选定列中的值后面添加数据栏,如Excel中的 展示了如何使用jqGrid实现此类功能的解决方案。如何在DataTables中实现类似的效果?如何尝试使用fnRender方法,而是添加如下样式的div: fnRender: function (object) { return "<div style=width: "+obj.data[0]+"%; />" } fnRender:函数(对象){ 返回“” } 使用fnRowCall
展示了如何使用jqGrid实现此类功能的解决方案。如何在DataTables中实现类似的效果?如何尝试使用fnRender方法,而是添加如下样式的div:
fnRender: function (object) {
return "<div style=width: "+obj.data[0]+"%; />"
}
fnRender:函数(对象){
返回“”
}
使用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;
},
“fnRowCallback”:函数(nRow、aData、iDisplayIndex){
var myValue=aData[4];
$('td:eq(4)”,nRow.html(“”);
返回nRow;
},
这是一个超级简化的例子。它所做的是获取在当前行的第4列中找到的值(您可以在这里进行更多的逻辑转换;我假设它已经以百分比的形式出现),在呈现的html中修改第4列的html,以包含与已找到的值相同宽度的div。修改后,它返回行的新值(即重新格式化的行)
还有一点。。。必须已经有了CSS,以使其成为一个酒吧(显示:块等),但这是它的长短不一。不能评论这么新的答案。我不得不对已接受的答案做一个小改动,并在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;
},
“fnRowCallback”:函数(nRow、aData、iDisplayIndex){
var myValue=aData[4];
$('td:eq(4)”,nRow.html(“”);
返回nRow;
},
开箱即用:
$("table").dataTable({}, $("table").databar());