我正在研究一个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”方法来删除并重新创建表,但它对我不起作用 . 任何输入都会非常有用 .