jQuery数据表使用复选框值获取记录

jQuery数据表使用复选框值获取记录,jquery,datatables,Jquery,Datatables,我想提交带有复选框值的DataTables中的所有记录。目前,我的代码如下: 表格代码 <form id="fmApprovedGradeStep" method="post" asp-controller="GradeStep" asp-action="GradeStep"> <div asp-validation-summary="All" class="text-danger"></div> @Html.AntiForgeryToken(); <d

我想提交带有复选框值的DataTables中的所有记录。目前,我的代码如下:

表格代码

<form id="fmApprovedGradeStep" method="post" asp-controller="GradeStep" asp-action="GradeStep">
<div asp-validation-summary="All" class="text-danger"></div>
@Html.AntiForgeryToken();
<div class="card text-center">
    <div class="card-header text-muted">
        <p><b>Approved GradeStep</b></p>
    </div>
    <div class="card-body">
        <div class="form-group row">
            <label class="col-sm-2 col-form-label">Search</label>
            <div class="col-sm-4 input-group">
                <div class="input-group-prepend">
                    <span class="input-group-text fa fa-search"></span>
                </div>
                <input id="gradeStepApprovedSearch" type="text" class="form-control" placeholder="Search by Paygroup, Grade, Step" />
            </div>
        </div>
        <div class="form-group">
            <div class="table-responsive-sm">
                <table id="gradeStepApprovedTable" class="table table-striped table-bordered table-sm compact">
                    <thead>
                        <tr>
                            <th scope="col" class="text-center">
                                <div class="form-check">
                                    <input id="gradeStepApprovedCheckAll" type="checkbox" class="form-check-input" />
                                    <label class="form-check-label">
                                    </label>
                                </div>
                            </th>
                            <th scope="col" class="text-center"><label>Paygroup</label></th>
                            <th scope="col" class="text-center"><label>Grade</label></th>
                            <th scope="col" class="text-center"><label>Step</label></th>
                            <th scope="col" class="text-center"><label>Remarks</label></th>
                            <th scope="col" class="text-center"><label>Status</label></th>
                            <th scope="col"></th>
                        </tr>
                    </thead>
                </table>
            </div>
        </div>
    </div>
    <div class="card-footer">
        <div class="btn-group-sm">
            @if (true)
            {
                <a id="btnGradeStepAdd" asp-controller="GradeStep" asp-action="GradeStepAddEdit" class="btn btn-outline-success">
                    <span class="fa fa-plus"></span>
                    Add
                </a>
            }
            @if (true)
            {
                <button id="btnGradeStepApproveDelete" type="button" class="btn btn-outline-success" data-loading-text="Deleting..." onclick="Delete('#fmApprovedGradeStep', '#btnGradeStepApproveDelete');">
                    <span class="fa fa-trash"></span>
                    Delete
                </button>
            }
        </div>
    </div>
</div>
但是,它返回给我的值如下所示

[
{
    "paygroup": "P1",
    "grade": "G1",
    "step": "S1",
    "remarks": "R1",
    "status": "OK"
},
{
    "paygroup": "P2",
    "grade": "G1",
    "step": "S1",
    "remarks": "R1",
    "status": "OK"
},
{
    "paygroup": "P3",
    "grade": "G1",
    "step": "S1",
    "remarks": "R1",
    "status": "OK"
}
] 结果不包含复选框的值,您能告诉我如何返回具有复选框值的记录吗?

非常感谢。

最终,我得到了解决方案。它通过下面的代码向行数据添加了一个带有复选框的列值

    // event handler for individual rows
$("#gradeStepApprovedTable").on("click", "td input[type=checkbox]", function () {
    var isChecked = this.checked;
    var dtapi = $("#gradeStepApprovedTable").DataTable();
    // set the data item associated with the row to match the checkbox
    var dtRow = dtapi.rows($(this).closest("tr"));
    console.log(dtRow.data());
    dtRow.data()[0].Checked = isChecked;   
});
它将输出如下所示的结果


[{“薪资组”:“P1”,“等级”:“G1”,“步骤”:“S1”,“备注”:“R1”,“状态”:“OK”},{“薪资组”:“P2”,“等级”:“G1”,“步骤”:“S1”,“备注”:“R1”,“状态”:“OK”,“Checked”:false},{“薪资组”:“P3”,“等级”:“G1”,“步骤”:“S1”,“备注”:“R1”,“状态”:“OK”,“Checked”:

最终,我得到的解决方案是。它通过下面的代码将带有复选框的列值附加到行数据

    // event handler for individual rows
$("#gradeStepApprovedTable").on("click", "td input[type=checkbox]", function () {
    var isChecked = this.checked;
    var dtapi = $("#gradeStepApprovedTable").DataTable();
    // set the data item associated with the row to match the checkbox
    var dtRow = dtapi.rows($(this).closest("tr"));
    console.log(dtRow.data());
    dtRow.data()[0].Checked = isChecked;   
});
它将输出如下所示的结果


[{“薪资组”:“P1”,“等级”:“G1”,“步骤”:“S1”,“备注”:“R1”,“状态”:“OK”},{“薪资组”:“P2”,“等级”:“G1”,“步骤”:“S1”,“备注”:“R1”,“状态”:“OK”,“Checked”:false},{“薪资组”:“P3”,“等级”:“G1”,“步骤”:“S1”,“备注”:“R1”,“状态”:“OK”,“Checked”:true

中添加name属性并重试。我已经尝试过“数据”:“checked”,“name”:“checked”,“searchable”:false,“render”:function(数据,类型,行){return“”;}}}`,但它没有返回任何valueAdd name属性(在
中)并重试。我尝试过“data”:“checked”,“name”:“checked”,“searchable”:false,“render”:function(数据,类型,行){return';}}}`,但它没有返回任何值
    // event handler for individual rows
$("#gradeStepApprovedTable").on("click", "td input[type=checkbox]", function () {
    var isChecked = this.checked;
    var dtapi = $("#gradeStepApprovedTable").DataTable();
    // set the data item associated with the row to match the checkbox
    var dtRow = dtapi.rows($(this).closest("tr"));
    console.log(dtRow.data());
    dtRow.data()[0].Checked = isChecked;   
});