通过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数据表中的主键进行数据排序的主要内容,如果未能解决你的问题,请参考以下文章