Jquery / JavaScript:对具有的列的数据表进行排序

这类似于下面的问题,但不完全相同,因为下面的post没有告诉用户如何创建数据表。 我google了很多,但找不到任何有用的资源。

https://stackoverflow.com/questions/36476345/jquery-datatables-and-server-side-sorting-in-asp-net-mvc

我也跟着下面但没有效果

在jQuery DataTables中使用锚标记对列进行排序

我有一个像下面这样的数据表,我试图排序我的第一列有一个元素。 如果我删除并使用@Html.Raw(item.ID)它工作正常但我使用元素时不会进行排序。 请告诉我如何在具有元素的列上对数据表进行排序。

 @*this is for sorting purpose*@  @foreach (var item in Model.FieldList) {  @*this is for sorting purpose*@  } 
IDID Name
@Html.Raw(item.ID) @Html.DisplayFor(model => item.ID) @Html.DisplayFor(model => item.Name)
$(document).ready(function () { $('.datatable').dataTable({ "sPaginationType": "bs_full", "aaSorting": [[0, "asc"]], "aoColumns": [{ "bVisible": false }, null, null] }); });

提前致谢。

[更新1]

根据达米安的建议,我添加了以下代码。 我可以注意到,在一小部分时间内,我可以看到值已排序,但是数据表不保留顺序,它就像我们正在重新加载页面一样令人耳目一新。

 "aoColumns": [{ "asSorting": ["asc"], "sType": "html" }, null] 

[更新2]

感谢达米安。 我在下面用过。 现在我的数据表已经排序但是出现了JavaScript错误。 outlook它。

 "aoColumns": [{ "asSorting": ["asc"], "sType": "html" }, {null}] 

感谢Damian指出我正确的方向。 我通过添加一个隐藏列并使用该列进行排序来解决。 请参阅上面的解决方案

你有两个选择:

1)更新到1.7以上的DataTables,因为以前的版本不支持对HTML元素进行排序。

2)将sType参数添加到该列。 这将忽略函数排序中的HTML,在您的情况下,类似于:

 "aoColumns": [ { "sType": "html" } ], 

这是关于它的官方文档 。