如何在单个asp.net按钮单击事件上检查所有asp.net复选框?

时间:2011-04-03 08:06:24

标签: javascript jquery asp.net vb.net

如何检查单个asp.net按钮单击事件

上的所有asp.net复选框

如果我在panel1中有45个复选框,我希望在按钮点击事件中检查所有复选框,在另一个按钮点击事件中,所有复选框都将被取消选中...

如何使用jquery,javascript或vb.net?

3 个答案:

答案 0 :(得分:2)

使用jQuery,你可以做到

var $checkboxes = $('input[type=checkbox]');
$('#check').toggle(function() {
    $checkboxes.attr('checked', 'checked');
    return false;

}, function() {
    $checkboxes.removeAttr('checked');
    return false;
});

检查http://jsfiddle.net/zgTw3/5/

处的工作示例

答案 1 :(得分:0)

这是复选框,面板和按钮的aspx文件代码;

<asp:Panel ID="Panel1" runat="server">

    <asp:CheckBox ID="CheckBox1" runat="server" />
    <asp:CheckBox ID="CheckBox2" runat="server" />
    <asp:CheckBox ID="CheckBox3" runat="server" />

</asp:Panel>
<asp:Button Text="click" ID="Button1" runat="server" onclick="Button1_Click" />

这是按钮点击事件事件的c#代码;

protected void Button1_Click(object sender, EventArgs e) {

    foreach (Control c in Panel1.Controls) {

        if (c is CheckBox) {

            (c as CheckBox).Checked = true;
        }

    }
}

这是这个c#代码的VB版本;

Protected Sub Button1_Click(sender As Object, e As EventArgs)

    For Each c As Control In Panel1.Controls

        If TypeOf c Is CheckBox Then

            TryCast(c, CheckBox).Checked = True

        End If
    Next
End Sub

当您点击该按钮时,它应该批量检查所有复选框。

编辑:

如果您想检查未经检查的那些并在同一次点击中取消选中已选中的那些,请执行以下操作

C#:

    protected void Button1_Click(object sender, EventArgs e) {

        foreach (Control c in Panel1.Controls) {

            if (c is CheckBox) {

                if ((c as CheckBox).Checked) {

                    (c as CheckBox).Checked = false;

                } else {

                    (c as CheckBox).Checked = true;
                }
            }

        }
    }

VB:

Protected Sub Button1_Click(sender As Object, e As EventArgs)

    For Each c As Control In Panel1.Controls

        If TypeOf c Is CheckBox Then

            If TryCast(c, CheckBox).Checked Then


                TryCast(c, CheckBox).Checked = False
            Else

                TryCast(c, CheckBox).Checked = True
            End If

        End If
    Next
End Sub

答案 2 :(得分:0)

ASP.NET在其控件上呈现IDNAME时有点奇怪。

尝试这样的事情:

<asp:Button ID="myToggleButton" runat="server" Text="Toggle Checkboxes" />

然后在你的脚本中

$('[id$="myToggleButton"]').click(function(){
    $('input:checkbox')
         .filter(':checked')
         .attr('checked',false)
         .end()
         .not(':checked')
         .attr('checked',true)
         ;        
});

或同样的想法。我很确定你可以更多地优化jQuery代码。