gpt4 book ai didi

jquery datatable ajax 无数据可用 mvc

转载 作者:行者123 更新时间:2023-12-01 01:31:17 25 4
gpt4 key购买 nike

我有一个在 $( document ).ready 函数中制作的表格。我还使用 jQuery DataTables 插件。由于某种原因,当页面加载时,ajax 调用 Controller 并返回数据并将其设置为我的网格所有获取的数据,但是尽管所有数据都加载到数据表中,但仍获取一行并警告我没有可用数据,我的代码如下所示;

HTML:

<div class="ibox-content">
<table class="table table-striped table-bordered table-hover dataTables-example" id="summary-table">
<thead>
<tr>
<th>@Html.DisplayNameFor(model => model.ProductCode)</th>
<th>@Html.DisplayNameFor(model => model.ProductName)</th>
<th>@Html.DisplayNameFor(model => model.Description)</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody id="SetInventoryList">
</tbody>
</table>
</div>

Jquery:

 $(document).ready(function () {
$('#summary-table').DataTable({
pageLength: 25,
dom: '<"html5buttons"B>lTfgitp',
buttons: [
{ extend: 'copy' },
{ extend: 'csv' },
{ extend: 'excel', title: 'ExampleFile' },
{ extend: 'pdf', title: 'ExampleFile' },

{
extend: 'print',
customize: function (win) {
$(win.document.body).addClass('white-bg');
$(win.document.body).css('font-size', '10px');

$(win.document.body).find('table')
.addClass('compact')
.css('font-size', 'inherit');
}
}
]

});
$("#summary-table").DataTable();
});

$.ajax({
type: 'GET',
url: "GetInventoryList",
mimeType: 'json',
success: function (data) {
$.each(data, function (i, data) {
var body = "<tr>";
body += "<td>" + data.ProductCode + "</td>";
body += "<td>" + data.ProductName + "</td>";
body += "<td>" + data.Description + "</td>";
body += "</tr>";
$("#summary-table tbody").append(body);
});

$("#summary-table").DataTable();
},
error: function () {
alert('Fail!');
}
});

Controller :

    public JsonResult GetInventoryList()
{
IEnumerable<ProductBO> model = productBLL.GetAll().AsEnumerable();
var model1 = from m in model select new { m.ProductId,m.ProductCode, m.ProductName, m.Description };
return Json(model1, JsonRequestBehavior.AllowGet);
}

enter image description here

最佳答案

加载数据表时,没有数据,因此 Datatbel 添加一行“表中没有可用数据”。

但是当您执行 ajax 调用时,您将在现有表中附加数据。

所以它只会附加在上面的代码下面

首先解析这个空的tbody,然后追加

 $.ajax({
type: 'GET',
url: "GetInventoryList",
mimeType: 'json',
success: function (data) {
// Empty tbody
$("#summary-table tbody").empty();
$.each(data, function (i, data) {
var body = "<tr>";
body += "<td>" + data.ProductCode + "</td>";
body += "<td>" + data.ProductName + "</td>";
body += "<td>" + data.Description + "</td>";
body += "</tr>";
$("#summary-table tbody").append(body);
});

$("#summary-table").DataTable();
},
error: function () {
alert('Fail!');
}
});

编辑 1

理想情况下,我不会像您使用的方式使用数据表。

我会将ajax和数据表初始化结合在一起,让数据表做脏活。

类似这样的

$("#summary-table").DataTable({
"processing": false,
"serverSide": false,
"paging": true,
"destroy": true,
pageLength: 25,
buttons: [
{ extend: 'copy' },
{ extend: 'csv' },
{ extend: 'excel', title: 'ExampleFile' },
{ extend: 'pdf', title: 'ExampleFile' },

{
extend: 'print',
customize: function (win) {
$(win.document.body).addClass('white-bg');
$(win.document.body).css('font-size', '10px');

$(win.document.body).find('table')
.addClass('compact')
.css('font-size', 'inherit');
}
}
],
dom: '<"html5buttons"B>lTfgitp',
"columns": [
{ "data": "ProductCode" },
{ "data": "ProductName" },
{ "data": "Description" }
],
"ajax": {
"url": "GetInventoryList",
"type": "GET",
"dataSrc": "[]",

}
});

关于jquery datatable ajax 无数据可用 mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51705732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com