微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在数据表中使用Ajax函数加载数据时,仅具有整数值的int列的排序功能不起作用

如何解决在数据表中使用Ajax函数加载数据时,仅具有整数值的int列的排序功能不起作用

附上ImageofDescOrder图片,以我的情况为例。我正在从作为控制器的服务器端进行排序。它对列表中的记录数进行排序,并将JSON结果发送到视图。但是,当使用Datatables中的Ajax函数加载数据时,仅具有“字符串”数据类型的整数值的CustomerCode的排序功能不起作用。

下面是我的JS代码

               var table = $('#tblLocks').DataTable({
               responsive: true,autoWidth: false,serverSide: true,processing: true,},url: "@Url.Action("LoadLocks","Locks")",type: "POST",dataType: "json",dataSrc: function (json) {
                        return json.data["LockCommonviewmodels"];
                    }
                },columns: [    
                { data: "SerialNumber",name: "SerialNumber",autoWidth: true },{ data: "CustomerName",name: "CustomerName",{ data: "CustomerCode",name: "CustomerCode",{ data: "ManufactureDate",name: "ManufactureDate",],order: [[3,"desc"]]
        });

HTML

                <table class="table display table-condensed table-striped table-hover locations-table" id="tblLocks">
                <thead>
                    <tr>
                        <th class="">@Html.LabelFor(model => model.LockCommonviewmodels.First(x => true).SerialNumber)</th>
                        <th class="name">@Html.LabelFor(model => model.LockCommonviewmodels.First(x => true).CustomerName)</th>
                        <th class="">@Html.LabelFor(model => model.LockCommonviewmodels.First(x => true).CustomerCode)</th>
                        <th class="">@Html.LabelFor(model => model.LockCommonviewmodels.First(x => true).ManufactureDate)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr></tr>
                </tbody>
                </table>

从服务器端排序:

if (!(string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDir)))
            {
                if (sortColumnDir == "asc")
                {
                    switch (sortColumn)
                    {
                        case "SerialNumber":
                            lists = lists.OrderBy(o => o.SerialNumber).Skip(skip).Take(pageSize).ToList();
                            break;
                        case "CustomerName":
                            lists  = lists .OrderBy(o => o.Customer != null ? o.Customer.Name : o.SerialNumber).Skip(skip).Take(pageSize).ToList();
                            break;
                        case "CustomerCode":
                            lists = lists .OrderBy(o => o.Customer != null ? o.Customer.CustomerCode : o.SerialNumber).Skip(skip).Take(pageSize).ToList();
                            break;
                        case "ManufactureDate":
                            lists = lists .OrderBy(o => o.ManufactureDate).Skip(skip).Take(pageSize).ToList();
                            break;
                       
                    }
                }
                else
                {
                    switch (sortColumn)
                    {
                        case "SerialNumber":
                            lists = lists .OrderByDescending(o => o.SerialNumber).Skip(skip).Take(pageSize).ToList();
                            break;
                        case "CustomerName":
                            lists = lists .OrderByDescending(o => o.Customer != null ? o.Customer.Name : o.SerialNumber).Skip(skip).Take(pageSize).ToList();
                            break;
                        case "CustomerCode":
                            lists = lists .OrderByDescending(o => o.Customer != null ? o.Customer.CustomerCode : o.SerialNumber).Skip(skip).Take(pageSize).ToList();
                            break;
                        case "ManufactureDate":
                            lists = lists .OrderByDescending(o => o.ManufactureDate).Skip(skip).Take(pageSize).ToList();
                            break;
                    }
                }
            }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。