获取Jquery数据表以对包含输入的表进行排序
我有一个静态
。
要对已使用Jquery数据表插件的数据进行排序和过滤,唯一的问题是它不会对标记进行排序,它只是将它们留在排序列表的底部(如果单击它两次则为顶部),虽然搜索function仍适用于所有单元格。
有没有办法让数据表识别输入标签内的值并能够对它们进行排序,我希望用混合数据,即一些静态td
值(从服务器端的计算生成)和一些inputs
?
我在这里问了一个问题 – http://jsfiddle.net/qE2wV/5/
尝试编写自定义排序函数,如果行输入了文本,则可以检索输入的值。 见下文,
function getValue(x) { if (x.indexOf('input') >= 0) { return $(x).val(); } return x; }
现在,使用此函数来实现如下所示的自定义比较器,
jQuery.fn.dataTableExt.oSort['cust-txt-asc'] = function (a, b) { var x = getValue(a); var y = getValue(b); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }; jQuery.fn.dataTableExt.oSort['cust-txt-desc'] = function (a, b) { var x = getValue(a); var y = getValue(b); return ((x < y) ? 1 : ((x > y) ? -1 : 0)); };
使用上面的搜索比较器初始化数据表,
$('#example').dataTable({"aoColumns": [ { "sType": "cust-txt" }, { "sType": "cust-txt" }, { "sType": "cust-txt" }, { "sType": "cust-txt" } ]});
演示: http : //jsfiddle.net/eLTUa/
此DataTables示例显示了一个可排序的DataTable,其中字段是输入
包括初始化代码。
我没有在这里发布,因为有版权声明,我知道一些数据表的东西不是免费的,比如编辑器。