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)
它工作正常但我使用元素时不会进行排序。 请告诉我如何在具有
元素的列上对数据表进行排序。
ID @*this is for sorting purpose*@ ID Name @foreach (var item in Model.FieldList) { @*this is for sorting purpose*@ @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" } ],
这是关于它的官方文档 。