You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery DataTable中按主键BusinessId实现数据降序排序问题咨询

问题原因

jQuery DataTable 初始化时默认会启用前端自动排序功能,默认按表格第一列升序重新排列内容,直接覆盖了你后端返回、视图渲染时已经排好的BusinessId降序顺序,所以才会出现后端排序不生效的问题。

解决方法

你可以根据自己的需求选以下任意一种方案:

方案1:禁用前端自动排序(最简单,不需要修改表格结构)

如果你不需要用户点击表头手动调整排序,直接关闭DataTable的排序功能即可,会完全保留你后端返回的排序结果:

$('#tblBusinessData').DataTable({
    ordering: false
});

方案2:保留前端排序功能,指定默认按BusinessId降序

如果你需要保留用户点击表头排序的能力,按以下步骤操作:

  1. 先在表格中增加BusinessId隐藏列:
    找到<thead>的表头行,添加隐藏的BusinessId表头:
    <th style="display:none">@Html.DisplayNameFor(model => model.BusinessId)</th>
    
    找到<tbody>的行模板,对应位置添加隐藏的BusinessId单元格:
    <td style="display:none">@item.BusinessId</td>
    
  2. 修改DataTable初始化配置,指定按该隐藏列降序排列。注意列索引从0开始计数,如果你把BusinessId列放在表头最后一位,假设总共有5个可见列,那BusinessId的索引就是5,调整order配置中的索引值即可:
    $('#tblBusinessData').DataTable({
        order: [[5, 'desc']]
    });
    

内容的提问来源于stack exchange,提问作者nischalinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:15:04