基于两列之间的计算对jquery数据表进行排序
Sorting a jquery datatable based on a calcul between two columns
我有一个jquery数据表,它是使用ajax初始化和填充的。我左边有一个菜单,里面有各种"复杂"的排序选项。
我的数据表包含总价以及售出的单位数量。我没有也不能添加"单价"列,但我仍然希望我的菜单项"按单价排序"按预期工作,这意味着如果我有下表:
Name Units Price
----------------------
James 1 10
Eric 2 19
Greg 10 110
James 5 45
我点击这个按钮,我希望它像这样排序:
Name Units Price
----------------------
James 5 45
Eric 2 19
James 1 10
Greg 10 110
我想纯粹用javascript来做这件事,因为我不想扰乱控制器和模型。
我使用以下方法做到了这一点:
$.fn.dataTableExt.afnSortData['unit-price'] = function ( oSettings, iColumn ) {
return $.map( oSettings.oApi._fnGetTrNodes(oSettings), function (tr, i) {
var price = parseInt($('td:eq('+iColumn+')', tr).text());
if(isNaN(price)) return 0;
var units = parseInt($('td:eq(1)', tr).text());
if(isNaN(units)) return 0;
var result = Math.round(1000*price/units);
return result;
} );
};
目前,我保留了units列位于索引1的事实,但可以使用一个类来保持这种动态。
然后在数据表中初始化:
theTable.dataTable({
...
"aoColumns": [
null,
null,
null,
null,
null,
{ "sSortDataType": "unit-price" }
]
});
我现在可以使用外部按钮进行排序:
theTable.dataTable().fnSort([[5,'asc']]);
相关文章:
- 对角度数据表中括号内的数字进行排序
- 对损坏的子行进行排序的数据表
- 数据表排序但对行进行分组
- 数据表通过分析一列的值对其进行排序
- 排序数据表
- 基于单选按钮和复选框的数据表排序
- 如何对数据表中的容量列进行排序
- 使用 IP 地址和超链接对数据表进行排序
- Javascript在素数面的数据表中排序后丢失
- 数据表排序完成时触发事件
- jquery 数据表排序 表标题中的单击事件不在列标题文本中
- jQuery 数据表排序问题
- 自定义数据表排序
- jQuery数据表排序不正确
- JQuery数据表排序前一列
- 引导数据表排序不能正常工作
- 数据表排序不起作用
- Jquery数据表排序插件根本不起作用
- 数据表排序不适用于dd-mm-yyyy格式
- Jquery数据表排序距离列