检查gridview中所有行的特定列的所有复选框

时间:2016-11-04 12:50:58

标签: javascript c# jquery asp.net gridview

我创建了一个带有1个隐藏边界的网格视图,1个边界域和动态创建的模板化字段,其中包含HeaderTemplate和ItemTemplate中的复选框。 Checkbox列的数量因查询而异。

复选框的ID是通过命名容器生成的 Hearder Checkbox ID是" gvEmpSalaryStructure_respective-columnname" 项目复选框ID是" gvEmpSalaryStructure_respective-columnname_incrementing-index(从0开始)"

现在,通过选择列的标题复选框,该列的所有复选框都应选中/取消选中。

如何通过javascript或任何更好的方式实现这一目标。 [注意:我在javascript中没有任何知识]

该链接包含gridview的图像,请查看以供参考。 Dynamically Created gridview with checkbox 提前谢谢。

2 个答案:

答案 0 :(得分:0)

$(".colmnHeader").on('click',function(){
    var getTDPosition= this.cellIndex;

    $("#table tr").each(function(){ 
        // get checkbox for specific colmn and make it checked
    });
});

答案 1 :(得分:0)

这会奏效。假设CheckBox的ID看起来像gvEmpSalaryStructure_columnName_2,其中2是列索引。

<script type="text/javascript">
    $("#<%= GridView1.ClientID %> th input:checkbox").change(function () {
        var columnIndex = this.id.split("_")[2];
        changeAllCheckBoxes(this.checked, columnIndex);
    });

    function changeAllCheckBoxes(is_checked, columnIndex) {
        $("#<%= GridView1.ClientID %> tr").each(function () {
            $(this).find("td input:checkbox").each(function (index, element) {
                if (index == columnIndex) {
                    this.checked = is_checked;
                }
            });
        });
    }
</script>