通过jquery数据表中的主键进行数据排序

Posted

技术标签:

【中文标题】通过jquery数据表中的主键进行数据排序【英文标题】:data sorting via primary key in jquery data table 【发布时间】:2021-11-08 16:38:57 【问题描述】:

我已使用数据表在视图页面中显示数据。我想按照降序显示数据

public ActionResult Index()
        
            return View(db.BusinessRegModel.OrderByDescending(v => v.BusinessId).ToList());

        

BusinessId 是主键。

但是在视图页面中,数据不是通过主键排序的。我正在使用jquery数据表来显示数据。

<table id="tblBusinessData" class="table"  cellspacing="0">
    <thead>
        <tr>
            <th>Edit/Print</th>
            <th>
                @html.DisplayNameFor(model => model.RegNum)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.RegDate)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.NameOfFirm)
            </th>
            //code blocks
             </tr>
    </thead>
     <tbody>
        @foreach (var item in Model)
        
        <tr>
            <td >
                @Html.ActionLink("Edit", "Edit", new  id = item.BusinessId , new  @class = "btn btn-warning" )
                @Html.ActionLink("Print", "Details", new  id = item.BusinessId , new  @class = "btn btn-danger" )
            </td>
            //code blocks
        

但是数据不是通过 BusinessId 键降序排列的。我怎样才能做到这一点?我需要按 BusinessId 降序显示数据。

jquery 代码

<script type="text/javascript">
            $('#tblBusinessData').DataTable();
    </script>

【问题讨论】:

【参考方案1】:

将列 ID 添加到 HTML 并通过配置将其隐藏:

$('#tblBusinessData').DataTable(
  "columnDefs": [
    "targets": [0],
    "visible": false
  ],
  "order": [
    [0, "desc"]
  ]
);

【讨论】:

这真的会搞砸一些东西,相信我,我知道... 比如?我无数次使用数据表,从来没有遇到过排序或可见性的问题。 其实我一直都是这样用的,但是我也知道可能因此而发生的一切,一个简单的例子是导出表时,隐藏列进入导出的文件,简单的解决方法是应用一个选择器来排除:eq(0)【参考方案2】:

如果您能够在将数据发送到 DataTables 之前在数据中设置所需的顺序,您可以简单地设置 order: [] 以禁用初始排序,同时仍然可以单击列标题。

$('#tblBusinessData').DataTable(
    order: []
);

【讨论】:

以上是关于通过jquery数据表中的主键进行数据排序的主要内容,如果未能解决你的问题,请参考以下文章

ClickHouse实战--ClickHouse的主键

多范围读取优化

删除特定行后如何修改数据库 phpmyadmin 中的主键?

jquery+ajax实现表格修改行操作

selectKey在mybai中的使用

是否按时间字段(其中 auto_now_add=True)对表进行排序,相当于按所述表的主键 ID 对表进行排序?