【问题标题】:Issue with DataTable default ordering based on column index and changing number of columns基于列索引和更改列数的 DataTable 默认排序问题
【发布时间】:2015-09-17 15:50:01
【问题描述】:

我正在尝试找出解决中继器中设置的 DataTable 问题的方法。根据查看页面的用户,列数会发生变化。例如,User1 将看到 8 列,而 user2 将看到表中的 7 列。

Datatables 让我可以使用排序功能选择表的默认排序:

var table = $('#example'String).DataTable();

// Sort by column 8 and then re-draw

table
    .order( [ 8, 'asc' ] )

问题是每当我更改 User2 的第一列的可见性时:

column0.Visible = False

...列更改的数量,因此进行 odering 的正确索引已从索引 8 更改为索引 7。

我尝试使用<td> ID 的默认排序,但它只接受Colummn Index

我尝试使用负索引从右侧开始,但它不起作用。

我还尝试找到一种方法来手动对表格列进行硬编码,而无需更改最终用户的顺序。

如果我可以更改列的顺序会很简单,但它们需要按照屏幕上的特定顺序。

任何熟悉数据表的人都可以帮助我。将不胜感激:)

【问题讨论】:

    标签: jquery .net vb.net datatables


    【解决方案1】:

    我看不到您的数据表初始化代码,但我通过命名 init 上的列然后使用它来查找列索引来完成此操作:

    在初始化中:

    table = $("table").DataTable({
               "columns": [
                        {"name": "Row1"}
                        {"name": "Row2"}
                         ]
             });
    

    然后,你可以像这样获取行的索引:

    var row1Index = table.column('Row1:name').index();
    

    并使用索引进行过滤:

    table.order([row1Index, 'asc']);
    

    它应该允许您的索引是基于初始化的变量。

    在此处查看名称文档:https://datatables.net/reference/option/columns.name

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 2022-01-01
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-19
      相关资源
      最近更新 更多