通过jQuery DataTable

时间:2016-10-03 23:17:40

标签: javascript jquery asp.net-mvc datatable datatables

是否可以通过选中位于DataTable顶部的复选框来检索所有记录?我的意思是我想添加一个复选框,如果用户检查它,它会通过AJAX将参数(例如bool isAll)传递给Controller,并通过更改搜索查询根据isAll参数获取记录。我在Offical Documentation看了许多不同的部分,但似乎没有这个功能。它如下所示。有什么想法吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

如果你的HTML看起来像这样:

<table>
<thead>
    <tr>
        <th><input type="checkbox" onClick="checkAll(this)"></th>
        <th >x</th>
        <th >y</th>
        <th >z</th>
    </tr>
</thead>
<tbody>
</tbody>

我会做这样的事情来检查名为myCheckBox的所有'复选框':

function checkAll(x) {
  checkboxes = document.getElementsByName('myCheckBox');
  for(var i=0, n=checkboxes.length; i<n; i++) {
    checkboxes[i].checked = x.checked;
  }
}

然后,如果你想把它作为字符串发送到你的AJAX:

function getCheckedBoxes(chkboxName) {
    var checkboxes = document.getElementsByName(chkboxName);
    var checkboxesChecked = [];
    for (var i=0; i<checkboxes.length; i++) {
     if (checkboxes[i].checked) {
        checkboxesChecked.push({"ID":checkboxes[i].value});
     }
    }
    return checkboxesChecked.length > 0 ? checkboxesChecked : null;
    }
    var checkedBoxes = getCheckedBoxes("cluster_checkbox");
    var data = JSON.stringify(checkedBoxes);

然后在你的AJAX中使用字符串调用var数据:

$.ajax({type : "POST",
            url : "/new_custCluster.php",
            data: {'IDs': data},
            }).done(function(result) {
                alert("Success");
            }).fail(function() {
                alert("Failure");
            });