角度“数据表”中的排序列

Posted

技术标签:

【中文标题】角度“数据表”中的排序列【英文标题】:Sort column in angular 'datatables' 【发布时间】:2017-07-15 10:50:33 【问题描述】:

我创建了表格

<table class="table table-striped table-bordered table-hover"  datatable="ng" dt-options="options">
<thead>
<tr>
    <th> Nannie ID</th>
    <th> Name</th>
    <th> Last name</th>
    <th> Email</th>
</tr>
</thead>
<tbody>
<tr class="" ng-repeat='item in items'>
    <td><a ui-sref="admin.nanniesEdit(id:item.id)">iditem.id</a></td>
    <td>item.profile.name</td>
    <td>item.lastname</td>
    <td>item.profile.email</td>
</tr>
</tbody>

按第一列顺序加载的表格:

NannieID
id1 
id10    
id12    
id13    
id2 
id3 
id5 

我想为每次点击重新排序以及首次加载时获得正确的顺序。 预期结果:

NannieID
id1 
id2 
id3 
id5 
id10    
id12    
id13    

我添加了这段代码,但它只有在加载表格时才有帮助,点击重新排序列后,我得到了错误的顺序

$scope.options = DTOptionsBuilder.newOptions().withOption('aaSorting', [[5, 'asc']])

请帮帮我

【问题讨论】:

【参考方案1】:

aaSorting 更改为order。您的代码将如下所示:

$scope.options = DTOptionsBuilder.newOptions().withOption('order', [[5, 'asc']])

【讨论】:

为我节省了大量时间【参考方案2】:

您可以使用 javascript 函数 sort

重新排列对象数组
$scope.asc = false;
$scope.reorder = function(direction)
    items.sort(function(a, b) 
      return a.id - b.id;
    );
    if(asc)
        items.reverse();
        asc = false;
    

并添加一个带有ng-click 调用reorder 的按钮

<button ng-click="$scope.reorder()">Reorder</button>

每按一次Reorder 按钮,您的列表就会从Asc OrderDesc Order 切换

【讨论】:

以上是关于角度“数据表”中的排序列的主要内容,如果未能解决你的问题,请参考以下文章

如何对jquery数据表中的特定列应用排序

如何对数据表中的特定列进行排序?

从数据表中的另一个表添加可排序列

如何禁用对数据表中的列进行排序

R Shiny - 使用列排序禁用数据表中的特定行

数据表 - 只允许使用按钮排序