当MVC视图中的数据为空时,在数据表中显示“正在处理...”

时间:2018-09-13 10:49:46

标签: asp.net-mvc datatable

当mvc视图中的数据为空时,在数据表中显示“正在处理...”。我感到困惑的是,为什么它显示“ 正在处理... ”。如果数据为空,则它要显示“ 表中没有数据

这是我的代码

[查看侧]

    <div class="row">
    <div class="col-md-12">
        <table id="dataGrid" class="display table table-striped table-bordered dt-responsive nowrap" width="100%" cellspacing="0">
            <thead>
                <tr>
                    <th>Id</th>
                    <th>Document Name</th>
                    <th>Other Document Name</th>
                    <th>Image</th>
                    <th>Action</th>
               </tr>
            </thead>
       </table>
   </div>
</div>
<script>
    $(document).ready(function () {
        var data = {
            'customerId': @Model.Id,                                
        }
        addAntiForgeryToken(data);        
        // DataTable
        $("#dataGrid").DataTable({                                
            "scrollX": true,  // scrolling horizontal
            "bSort": false,
            "bFilter": false,
            "processing": true, // for show progress bar
            "serverSide": true, // for process server side
            "pageLength": 5,
            "lengthMenu": [5, 10, 50, 100, 1000, 10000],
            "ajax": {
                "url": "/Admin/FreeLancer/list",
                "type": "POST",
                "datatype": "json",
                "data": data,
                "success": function (data) {
                }
            },
            "columnDefs":
            [{
                "targets": [0],
                "visible": false,
                "searchable": false,
                "orderable": false,
            }
                ],
            "columns": [
                { "data": "Id", "name": "Id", "autoWidth": true },
                { "data": "DocumentName", "name": "DocumentName", "autoWidth": true },                                    
                { "data": "OtherDocumentName", "name": "otherdocumentname", "autoWidth": true },                                    
                { "data": "UploadID", "name": "UploadID", "autoWidth": true },
                {
                    "render": function (data, type, row) {
                        //return "<a target='_blank' href='/Download/GetDownload?downloadId=" + row.UploadID + "' class='btn btn-info'>Download </a>" +
                        //"<a href='#' class='btn btn-danger' onclick=DeleteData('" + row.Id + "');>Delete</a>"; }
                        return "<a href='#' class='btn btn-danger' onclick=DeleteData('" + row.Id + "');>Delete</a>";
                    }
                },
            ],
        });
    });
</script>

[控制器端]

[HttpPost]
public IActionResult List(int customerId)        
{
    // getting all data  
    var dataList = _customerRegister.DocumentList(customerId,
        start: Convert.ToInt32(Request.Form["start"]),
        pageSize: Request.Form["length"].ToString() != null ? Convert.ToInt32(Request.Form["length"].ToString()) : 0,
        sortColumnName: Request.Form["columns[" + Request.Form["order[0][column]"] + "][name]"],
        sortColumnDirection: Request.Form["order[0][dir]"]);

    var data = dataList.Select(x => new
    {
        Id = x.Id,
        DocumentName = x.DocumentName,
        OtherDocumentName = x.OtherDocumentName,
        UploadID = x.UploadID,
    });

    //returning json data
    Response.StatusCode = 200;
    return Json(new { draw = Request.Form["draw"], recordsfiltered = dataList.TotalCount, recordstotal = dataList.TotalCount, data = data });
}

这是代码,但我不认为它们是代码中的任何问题

2 个答案:

答案 0 :(得分:1)

您是否检查了DataTables dom属性?

$("#table_selector").DataTable({ 
dom: 'r<"datatable-header"fl><"datatable-scroll"t><"datatable-footer"ip>',
processing: true,
serverSide: true
});

选项

DataTables中的内置表控件元素是:

l-长度更改输入控件

f-过滤输入

t-桌子!

i-表格信息摘要

p-分页控制

r-处理显示元素

https://datatables.net/reference/option/dom

答案 1 :(得分:0)

我看到没有用于显示消息的代码。如果您使用的是我注意到的JQuery数据表,则可以使用:

oLanguage: {
      sEmptyTable: "Message",
      sZeroRecords: "Message",
    },