我有一个源自Ajax的Datatable,我想计算#datatableOne
中的行' Status'有一个值'未知'。我尝试了以下内容。
这只计算活动页面中的行数
function tableOneRowCount(){
var rows = $("#datatableOne td:nth-child():contains('Unknown')" ).length;
alert("Unknown rows :" + rows);
}
除非您将它们显示一次,否则这也不包括分页行。因此,除非我选择第二页,否则它不会包括“未知”和“未知”。第二页的行。
function tableOneRowCount(){
var table = $('#datatableOne').DataTable();
var rows = table.rows(':contains("Unknown")').data().length;
alert("unknown rows : " + rows);
}
需要帮助,因为我没有非常扎实的javascript经验。
以下是我加载数据表的方式。
var tableOne = $('#datatableOne').DataTable({
ajax:{
url: '@Url.Action("AssetsUnderContract_AjaxHandler", "SiteReport")',
type: 'GET',
data: { "SiteReportID": SiteReportID }
},
"bProcessing": true,
"columns": [
{"data": "report_asset_id"},
{"data": "product_name"},
{"data": "serial_number"},
{"data": "description"},
{"data": "site_location"},
{"data": "asset_guarantee"},
{"data": "asset_calibration_status"}
],
"columnDefs": [
{
"targets": 7,
"data": null,
"defaultContent": '<button class="btn btn-round btn-primary btn-xs" type="button">Load</button>'
}
],
"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
if(aData["asset_guarantee"] == true){
$("td:eq(5)", nRow).text("").wrapInner('<span class="glyphicon glyphicon-check"></span>').css("text-align", "center")
}else {
$("td:eq(5)", nRow).text("").wrapInner('<span class="glyphicon glyphicon-unchecked"></span>').css("text-align", "center")
}
if(aData["asset_calibration_status"] == 0){
$("td:eq(6)", nRow).text("Unknown").wrapInner('<span class="label label-default"></span>').css("text-align", "center")
}else if(aData["asset_calibration_status"] == 1){
$("td:eq(6)", nRow).text("Completed").wrapInner('<span class="label label-success"></span>').css("text-align", "center")
}else if(aData["asset_calibration_status"] == 2){
$("td:eq(6)", nRow).text("Not Found").wrapInner('<span class="label label-danger"></span>').css("text-align", "center")
}else if(aData["asset_calibration_status"] == 3){
$("td:eq(6)", nRow).text("Pending").wrapInner('<span class="label label-danger"></span>').css("text-align", "center")
}
return nRow;
}
});
答案 0 :(得分:-1)
加载数据后,您可以使用data()
方法从tableOne
检索所有行:
tableOne.data().length
这将为您提供JavaScript中所有行的计数。要仅在status === 'unknown'
上过滤,您可以在each()
上data()
对其进行统计。
var unknownCount = 0;
tableOne.data().each(function(row) {
if (row.status === 'unknown') {
unknownCount = unknownCount + 1;
}
}
我假设row
是一个对象,但它可能不是,但希望这会让你走上正轨。