我使用以下代码将%列添加到我的数据表:
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"percent-pre": function (a) {
var x = (a == "-") ? 0 : a.replace(/%/, "");
return parseFloat(x);
},
"percent-asc": function (a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"percent-desc": function (a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
这样我可以对包含'%'的列进行排序。
我还在我的表中添加了ColumnFilter插件(Plugin Link),以便能够过滤各个列。
当我将百分比值保存并显示为数字时,我可以过滤该列: Fiddle Demo
但是当我将该列类型设置为百分比并尝试过滤同一列时,我总是得到空数据: Fiddle Demo
打开第一个小提琴并单击“加载数据”并尝试设置'%'列的范围 - 一切正常。现在对第二个做同样的事情 - 你会得到空表。
如何将范围过滤器应用于具有百分比值的列?
答案 0 :(得分:2)
事实证明这很容易。
将百分比值存储为数字并按如下方式声明列:
{
sTitle: "%",
sType: "numeric",
sWidth: "40px",
sClass: "center",
mData: "percent",
mRender: function (data, type, full) {
if (type === 'display') {//this is available in DataTables 1.9+
return data + ' %';
}
return data;
}
}
这是我更新并正在使用jsFiddle