我正在开发一个ASP.NET MVC应用程序,并且当前正在将一个记录列表作为表的行来迭代,以实现jQuery DataTables插件。我有以下结构:
//Contact Card Layout:
<table id="contactTable" style="width:100%;">
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody>
@for (int i = 0; i < Model.Count; i++)
{
<tr>
<td>
<!-- Contact Card -->
<div class="contactCard" isprimary="@Model[i].IsPrimary.SelectedValue">
//Contact Card UI Logic
</div>
</td>
</tr>
}
</tbody>
</table>
用于将其呈现为数据表的Jquery脚本是:
<script>
$(document).ready(function () {
var table = $('#contactTable').DataTable({
"filter": false, //show-hide search box
"paginate": true, //show-hide pagination control
"pagingType": "simple_numbers", //Pagination type; currently there are multiple styles [numbers, simple, simple_numbers, ]
"pageLength": 3, //The page size to specify the length for pagination
"lengthChange": false, // show hide dropdown
//"lengthMenu": [[2, 5, 10, 15, -1], [2, 5, 10, 15, "All"]],
"info": true, //hide showing entries
"drawCallback": function () {
//var row = this.api().row('#contactTable tbody tr td .contactCard[isprimary = "Y"]').index();
//alert(row);
}
});
});
</script>
作为所需的UI,这一切都正常工作,但是如果向表中添加了新行,则重新呈现表有一个问题。 我有一个Bootstrap Modal弹出窗口,它调用控制器方法并向Model添加一条新记录,因此返回所有记录的列表(更新/添加的记录),这些记录在UI上显示为表,但是在结尾处追加表
如何对数据表中的行进行排序,以便最后添加的行显示在顶部? 注意:我正在从控制器发送已排序的记录列表,但它在UI中的显示顺序不同。提到的一些链接使用Datatables的“drawCallback”方法来删除并重新创建表,但它对我不起作用。任何输入都会非常有用。