获取Jquery数据表以对包含输入的表进行排序

我有一个静态

和输入(包裹在td)

要对已使用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,其中字段是输入

包括初始化代码。

我没有在这里发布,因为有版权声明,我知道一些数据表的东西不是免费的,比如编辑器。