【发布时间】:2021-07-04 15:58:27
【问题描述】:
cshtml:
<!--Grid view details-->
<div class="divGrid" id="divGridSales" style="display:none;">
<div class="table-responsive" id="ItemTableDiv" style="float: none;">
<div class="table-responsive">
<table class="table tblView" id="tblViewPartDetails">
<thead id="itemTblHeaderColumns">
</thead>
<tbody id="ItemConfigGrid">
</tbody>
</table>
</div>
</div>
</div>
在下拉更改事件中,我正在动态创建表格,如下所示,
$("#ddlCountry").change(function () {
$("#divGridSales").css({ display: "none" });
var id = {};
id.pLobID = $('#ddlLOB').val();
id.pCountryID = $('#ddlCountry').val();
if (id.pCountryID > 0) {
$.ajax({
type: "GET",
url: "../Controller/Method",
data: id,
success: function (data) {
if (data != null) {
debugger;
if (data != null && data.length > 0) {
var tableHeader = $('#itemTblHeaderColumns')
$("#itemTblHeaderColumns tr").remove();
var trHeader = $('<tr /> ').appendTo(tableHeader);
/////This is used to bind columns
trHeader.append('<th class="trheaderTable" style="width: 12%;"> Part Number </th>');//PartNumber
trHeader.append('<th class="trheaderTable" style="width: 5%;"> Action </th>');//Action
///This is used to bind rows
var tbody = $('#ItemConfigGrid');
$("#ItemConfigGrid tr").remove();
for (var iRow = 0; iRow < data.length; iRow++) {
var tr = $('<tr /> ').appendTo(tbody);
tr.append('<td>' + data[iRow].partNumber + '</td>');
tr.append('<td><a href="#" id="hlinkView" class="ti-eye" data-toggle="modal" data-target="#exampleModal" onclick="getPartDetailsByPartNumber(' + data[iRow].partNumber + ')"></a></td>');
}
$('#tblViewPartDetails').DataTable();
$("#divGridSales").css({ display: "block" });
}
else {
alert('Something went to wrong!');
}
}
}
});
}
});
在 tblViewPartDetails 桌子上我必须添加分页
注意:我试过DataTable插件,第一次按要求显示数据。但是下一次,当下拉列表更改时,所有数据都会显示(分页不起作用)。
【问题讨论】:
-
我没有看到你的代码有任何问题,你能解释一下你所面临的问题吗?我也没有看到任何与分页相关的请求参数,您如何确定服务器端的当前页数?
-
@SowmyadharGourishetty 我需要为这个动态添加的 HTML 表格添加分页,我已经尝试过 DataTable 插件,但没有像 Note 中提到的那样工作。
-
我了解到您想要实现分页。您现在拥有的代码将按预期工作,但唯一的问题是您如何处理需要从服务器发送的记录数。例如:First Load,Current Page 为 1,然后加载前 1 条记录,Second Page,Current Page 为 2,则需要跳过前 10 条记录,获取后 10 条记录。您也可以对 DataTable 执行相同操作,只需使用
$('#myTable').dataTable().clear();清除 DataTable -
@SowmyadharGourishetty 感谢您的回复,但我的实际要求是我必须在客户端为整个数据添加分页,它将显示在 Dropdown 的更改事件中。第一次使用 DataTable 它可以按要求正常工作,但是当我更改 Drop down 时,它会显示所有带有分页的数据,但以前的记录计数也没有清除搜索文本框。当我们搜索新文本时,它会按要求工作。我们可以在 ASP Dot Net Core 中添加类似 Web 网格的功能吗?
-
您能否发布您为 DataTable 尝试的实现?
标签: c# ajax pagination asp.net-core-mvc