我想我知道与此有关的问题,但是我不知道如何正确处理它,因此我希望这里的某个人也遇到了类似的问题,并设法解决了一些问题。我所拥有的是一个带有几列的表格,除一列外,所有这些列都可以进行排序。下面是该列及其工作排序的屏幕截图。
如您所见,它不是根据字母数字逻辑排序的。我的假设是,某些名称中包含字符,例如逗号的括号,方括号等。这样说,我将如何解决这个问题,以便可以使用datatables插件对此字母数字进行排序?想法的?
****编辑****
这是我正在使用的代码,适用于除这一栏以外的所有内容。
jQuery.fn.dataTableExt.oSort['num-asc'] = function(a,b) {
var x = a.replace( /<.*?>/g, "" );
var y = b.replace( /<.*?>/g, "" );
x = parseFloat( x );
y = parseFloat( y );
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
};
jQuery.fn.dataTableExt.oSort['num-desc'] = function(a,b) {
var x = a.replace( /<.*?>/g, "" );
var y = b.replace( /<.*?>/g, "" );
x = parseFloat( x );
y = parseFloat( y );
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
};
$(document).ready(function() {
$('#ledger').dataTable({
bAutoWidth: false,
bJQueryUI : true,
bProcessing: true,
bServerSide: false,
sPaginationType: "full_numbers",
bStateSave : false,
bUseRendered: false,
iDisplayLength: ${entriesValue},
sDom: mw.superadmin.datatable.relatedListDom,
aLengthMenu: mw.superadmin.datatable.relatedListLengthMenu,
aaSorting: [[0,'asc']],
aoColumns: [
null,
{ "iDataSort": 2},
{ "bVisible": false, "sType": "num"},
{ "iDataSort": 4, "bSortable": true },
{ "bVisible": false, "sType": "num"}
]
});
最佳答案
由于您正在显示链接,所以我猜您正在使用自定义渲染功能?
如果是这种情况,请在您的列定义中设置以下内容:
"bUseRendered": false
这将使表对数据进行排序,而不对呈现的输出进行排序。