c# - 可检查的表头复选框不起作用

标签 c# javascript jquery asp.net-mvc-4 checkbox

我在 MVC4 应用程序中使用带有 ICheck 框的 jQuery 数据表。

enter image description here

我尝试触发标题复选框单击事件,但它不起作用,请查看我的代码。

如下。

HTML

<table id="tblItems" class="table table-bordered table-checkable">
            <thead>
                <tr>
                    <th class="checkbox-column">
                        <input type="checkbox" class="icheck-input" />
                    </th>
                    <th>Item No</th>
                    <th>Name</th>
                </tr>
            </thead>
            <tbody>
                <tr>

                </tr>
            </tbody>
        </table>

脚本

    $(document).ready(function () {

    var elementName = "#tblItems";

    $(elementName).dataTable({
        bProcessing: false,
        bLengthChange: false,
        bInfo: false,
        bPaginate: false,
        sAjaxSource: '@Url.Action("GetNeedsToDispatchOrders", "Dispatch")',
            aoColumns: [
               {
                   mRender: function (o) { return '<td class="checkbox-column"><input type="checkbox" class="icheck-input" /></td>'; }
               },
               { sTitle: "Item No", bSortable: false, },
               { sTitle: "Name", bFilterable: true, bSortable: false, },
            ],
            "fnRowCallback": function (nRow, aData, iDisplayIndex) {
                var row = $(nRow).attr("id", $('td:eq(0)', nRow).html());
                $('td', nRow).on('click', function (e) {
                    if ($(this).hasClass('action'))
                        e.stopPropagation();
                });
                //Edit
                row.find('.clsEdit').click(function () {

                    var node = $(this).closest('tr');
                    var table = $(elementName).DataTable()
                    var column_data = table.row(node).data()[0];
                });
                //Delete
                row.find('.clsDelete').click(function () {

                    var node = $(this).closest('tr');
                    var table = $(elementName).DataTable();
                    var column_data = table.row(node).data()[0];
                });
                //Row click for details popup
                row.click(function () {
                    var idx = $(this).closest('tr');
                    var table = $(elementName).DataTable();
                    var column_data = table.row(idx).data()[0];
                });
            }
        });
    });

我需要选中或取消选中标题复选框选中更改事件中的所有行复选框。

更新

我像这样更改标题复选框 html

 <input type="checkbox" id="thChk" class="icheck-input" />

和我的脚本

    $('#tblItems').on('change', '#thChk', function (event) {
        alert(this.checked);

        $('#tblItems tbody tr input[type=checkbox]').each(function () {
            $(this).prop('checked', this.checked);
        });
    });

现在检查的状态显示在警报中。但我无法选中 tbody tr 复选框。

最佳答案

$('#tblItems').on('change', '#thChk', function () {
    alert(this.checked);

    var checkStatus = this.checked;

    $('#tblItems tbody tr').find('input:checkbox').each(function () {
        $(this).prop('checked', checkStatus);
    });
});

关于c# - 可检查的表头复选框不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24645331/

相关文章:

c# - 为什么 LINQ 以不同的方式对待执行 "same"事情的两种方法?

c# - 同时检查多个 URL 的页面加载时间

javascript - Angular - Controller 中的自定义验证器函数 : How to access 'this' ?

javascript - 在 Chrome 中滚动到 View 中时 CSS 动画不会运行。类未添加到元素中

jquery - 使用 jQuery 启用按钮

c# - Crystal Reports 可以缩放以适合页面吗

c# - 从字面上打印带有前导 0 的整数

javascript - 我如何使用 Javascript 解析 JSON

javascript - XMLHttpRequest 通过但不是我的 Jquery Ajax 调用调用相同的东西

javascript - 如何通过在点击时添加边框来在无序列表 "highlight"中制作按钮?