如何使用DataTables.net动态设置要在页面加载上排序的列?

时间:2011-09-09 04:43:51

标签: asp.net-mvc jquery-datatables

我使用Asp mvc。我有这个表,这是一个dataTables,

在我的页面中,表格的列有时会显示或不显示,具体取决于用户的自动化。 例如,我有这个带复选框的表(它是动态显示的,位于最左边的列),我想要不可排序。 我还想在默认情况下对左侧的第一列进行排序。 因此,无论是否出现复选框,我希望第一个非复选框列可以排序。 这可能吗?。

2 个答案:

答案 0 :(得分:1)

我知道这个问题已经存在很久了,希望你能解决它。 我不确定我是否清楚,但我建议您查看此页面,了解如何使用datatables.net控制排序:

http://www.datatables.net/release-datatables/examples/advanced_init/sorting_control.html

如果您使用其中一个DataTools,您甚至可以控制显示哪些列,或者让用户有机会选择他们想要查看的列。 看看这里的例子: http://www.datatables.net/examples/

答案 1 :(得分:1)

通过此代码,您可以通过添加类'sort-desc'或'sort-asc'对页面加载中的升序和降序进行排序来对数据表中的各个列进行排序

$('.dom-table').each(function(index) {
        var sort_column=$('.dom-table thead tr').children().index('.sort-desc');
        var sort_oper='desc';
        if(sort_column < 0)
        {
            var sort_column=$('.dom-table thead tr').children().index('.sort-asc');
            sort_oper='asc';
            if(sort_column < 0)
            {
                sort_column=0;
            }
        }
        $(this).dataTable({
        "sDom": 'T<"clear">lfrtip',
        "aaSorting": [[sort_column,sort_oper]],
    });
});

我没有测试过这段代码,但应该可以使用。