Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 选中GridView中的所有复选框_C#_Asp.net_.net_Gridview_Checkbox - Fatal编程技术网

C# 选中GridView中的所有复选框

C# 选中GridView中的所有复选框,c#,asp.net,.net,gridview,checkbox,C#,Asp.net,.net,Gridview,Checkbox,我在ASP.NET/C中有一个GridView,其中有一个CheckBoxField、一个BoundField和两个ButtonField。所有4个都有一个标题,以明确列代表的位置。在Page_Load事件中,我将GridView的B ataèSource设置为我的填充数据表 我想让它更容易为用户使用,并想在标题中做一个复选框。当用户选中该复选框时,应在GridView中选中所有复选框。我已经将CheckBoxField的HeaderText设置为,现在它在标题中显示了一个复选框 现在我想给这个

我在ASP.NET/C中有一个GridView,其中有一个CheckBoxField、一个BoundField和两个ButtonField。所有4个都有一个标题,以明确列代表的位置。在Page_Load事件中,我将GridView的B ataèSource设置为我的填充数据表

我想让它更容易为用户使用,并想在标题中做一个复选框。当用户选中该复选框时,应在GridView中选中所有复选框。我已经将CheckBoxField的HeaderText设置为
,现在它在标题中显示了一个复选框

现在我想给这个复选框添加一个函数,当它被选中时,所有的复选框都会被选中,反之亦然。我试着用jQuery来实现,但没有成功,因为我找不到一种方法来为GridView中的所有复选框提供相同的ID或名称

在标题中选中基于HTML的复选框时是否会发生事件?如果是,哪项活动? 如果否,当我选中该复选框并从代码隐藏中更改GridView时,如何触发事件

如果这些都不可能,我怎么能用另一种方法,用javascript、jQuery或者ASP.net控件来实现呢

我希望你能在这方面帮助我,但请不要指望我是代码大师。我是一家公司的实习生,公司需要一个具有此功能的系统

更新:


谢谢大家帮助我。将数据源返回数据表的最简单方法是什么,因为我需要知道哪些行被选中,哪些行没有被选中?

使用jQuery,可以在GridView中获得所有复选框,然后根据需要更改每个复选框的状态。只要点击一个链接或按钮,或者你喜欢的任何东西,你就可以调用这个javascript函数

function CheckAll()
{   
    var updateButtons = jQuery('#<%=gvGridViewId.ClientID%> input[type=checkbox]');

    updateButtons.each( function() {
            // use this line to change the status if check to uncheck and vice versa
            //  or make it as you like with similar function
        jQuery(this).attr("checked", !this.checked);
    });     
}
函数CheckAll()
{   
var updateButtons=jQuery(“#input[type=checkbox]”);
updateButtons.each(函数(){
//如果选择取消选中,则使用此行更改状态,反之亦然
//或者用类似的功能来制作
jQuery(this.attr)(“checked”,!this.checked);
});     
}

这是我为您准备的一个示例

ASPX

<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        var allCheckBoxSelector = '#<%=GridView1.ClientID%> input[id*="chkAll"]:checkbox';
        var checkBoxSelector = '#<%=GridView1.ClientID%> input[id*="chkSelected"]:checkbox';

        function ToggleCheckUncheckAllOptionAsNeeded() {
            var totalCheckboxes = $(checkBoxSelector),
         checkedCheckboxes = totalCheckboxes.filter(":checked"),
         noCheckboxesAreChecked = (checkedCheckboxes.length === 0),
         allCheckboxesAreChecked = (totalCheckboxes.length === checkedCheckboxes.length);

            $(allCheckBoxSelector).attr('checked', allCheckboxesAreChecked);
        }

        $(document).ready(function () {
            $(allCheckBoxSelector).live('click', function () {
                $(checkBoxSelector).attr('checked', $(this).is(':checked'));

                ToggleCheckUncheckAllOptionAsNeeded();
            });

            $(checkBoxSelector).live('click', ToggleCheckUncheckAllOptionAsNeeded);

            ToggleCheckUncheckAllOptionAsNeeded();
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server">
            <Columns>
                <asp:TemplateField>
                    <HeaderTemplate>
                        <asp:CheckBox ID="chkAll" runat="server" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="chkSelected" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>
    </form>
</body>

var allCheckBoxSelector='#输入[id*=“chkAll”]:复选框';
var checkBoxSelector='#输入[id*=“chkSelected”]:复选框';
函数ToggleCheckUncheckAllOptionAsNeeded(){
var Total复选框=$(复选框选择器),
checkedCheckboxes=totalCheckboxes.filter(“:checked”),
NoCheckBox已选中=(CheckedCheckBox.length==0),
allCheckboxesAreChecked=(totalCheckboxes.length==checkedCheckboxes.length);
$(allCheckBoxSelector).attr('checked',AllCheckBoxes已选中);
}
$(文档).ready(函数(){
$(allCheckBoxSelector).live('单击',函数(){
$(checkBoxSelector).attr('checked',$(this).is(':checked');
根据需要切换CheckUncheckAlloptionAsneeded();
});
$(checkBoxSelector).live('单击',根据需要切换CheckUnchecklOption);
根据需要切换CheckUncheckAlloptionAsneeded();
});
C#

受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!IsPostBack)
{
List lstObjects=新列表{“aaa”、“bbb”};
GridView1.DataSource=lstObjects;
GridView1.DataBind();
}
}
如果您使用的是最新版本的jQuery(1.7) 使用以下命令:

<script type="text/javascript">
        var allCheckBoxSelector = '#<%=GridView1.ClientID%> input[id*="chkAll"]:checkbox';
        var checkBoxSelector = '#<%=GridView1.ClientID%> input[id*="chkSelected"]:checkbox';

        function ToggleCheckUncheckAllOptionAsNeeded() {
            var totalCheckboxes = $(checkBoxSelector),
         checkedCheckboxes = totalCheckboxes.filter(":checked"),
         noCheckboxesAreChecked = (checkedCheckboxes.length === 0),
         allCheckboxesAreChecked = (totalCheckboxes.length === checkedCheckboxes.length);

            $(allCheckBoxSelector).attr('checked', allCheckboxesAreChecked);
        }

        $(document).ready(function () {
            $(allCheckBoxSelector).click(function () {
                $(checkBoxSelector).attr('checked', $(this).is(':checked'));

                ToggleCheckUncheckAllOptionAsNeeded();
            });

            $(checkBoxSelector).click(ToggleCheckUncheckAllOptionAsNeeded);

            ToggleCheckUncheckAllOptionAsNeeded();
        });
    </script>

var allCheckBoxSelector='#输入[id*=“chkAll”]:复选框';
var checkBoxSelector='#输入[id*=“chkSelected”]:复选框';
函数ToggleCheckUncheckAllOptionAsNeeded(){
var Total复选框=$(复选框选择器),
checkedCheckboxes=totalCheckboxes.filter(“:checked”),
NoCheckBox已选中=(CheckedCheckBox.length==0),
allCheckboxesAreChecked=(totalCheckboxes.length==checkedCheckboxes.length);
$(allCheckBoxSelector).attr('checked',AllCheckBoxes已选中);
}
$(文档).ready(函数(){
$(allCheckBoxSelector)。单击(函数(){
$(checkBoxSelector).attr('checked',$(this).is(':checked');
根据需要切换CheckUncheckAlloptionAsneeded();
});
$(checkBoxSelector)。单击(根据需要切换CheckUnchecklOption);
根据需要切换CheckUncheckAlloptionAsneeded();
});

根据您的需要尝试此代码

在网格视图中

<asp:TemplateField>
        <HeaderTemplate>                                
            <asp:CheckBox ID="headerchkbox" runat="server"  CssClass="chkheader" />
        </HeaderTemplate>
        <ItemTemplate>
            <asp:CheckBox ID="CheckBoxAssign" runat="server" CssClass="chkitems" />
        </ItemTemplate>
</asp:TemplateField>

java脚本

<script type="text/javascript">
        $(window).bind('load', function () {
            var headerChk = $(".chkheader input");
            var itemChk = $(".chkitems input");
            headerChk.bind("click", function () { itemChk.each(function () { this.checked = headerChk[0].checked; })
            });
            itemChk.bind("click", function () { if ($(this).checked == false) headerChk[0].checked = false; });
        });
    </script>

$(窗口).bind('load',函数(){
var headerChk=$(“.chkheader输入”);
var itemChk=$(“.chkitems输入”);
bind(“单击”,函数(){itemChk.each(函数(){this.checked=headerChk[0].checked;})
});
bind(“单击”,函数(){if($(this).checked==false)headerChk[0].checked=false;});
});
<script type="text/javascript">
        $(window).bind('load', function () {
            var headerChk = $(".chkheader input");
            var itemChk = $(".chkitems input");
            headerChk.bind("click", function () { itemChk.each(function () { this.checked = headerChk[0].checked; })
            });
            itemChk.bind("click", function () { if ($(this).checked == false) headerChk[0].checked = false; });
        });
    </script>