Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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# 选中所有复选框功能Asp.net_C#_Javascript_Asp.net_Webforms - Fatal编程技术网

C# 选中所有复选框功能Asp.net

C# 选中所有复选框功能Asp.net,c#,javascript,asp.net,webforms,C#,Javascript,Asp.net,Webforms,我基本上想问这个问题(),但从asp.net的角度来看。当您使用asp.net进行此操作时,似乎还有更多的挑战需要克服。CssClass属性使用指定的类生成一个span容器,但它不会放置在输入上。以及母版页和控件的挑战。我正在循环浏览记录,并用复选框显示它们。我希望通过全班抓取所有复选框来执行全选。我认为那是不可能的。有什么建议吗 标记: <asp:CheckBox runat="server" ID="checkAll" CssClass="CheckAll" /> <

我基本上想问这个问题(),但从asp.net的角度来看。当您使用asp.net进行此操作时,似乎还有更多的挑战需要克服。CssClass属性使用指定的类生成一个span容器,但它不会放置在输入上。以及母版页和控件的挑战。我正在循环浏览记录,并用复选框显示它们。我希望通过全班抓取所有复选框来执行全选。我认为那是不可能的。有什么建议吗

标记:

  <asp:CheckBox runat="server" ID="checkAll" CssClass="CheckAll" />


<asp:Table ID="tblitems" Visible="false" Width="80%" HorizontalAlign="Center" runat="server">
                <asp:TableRow>
                   //The data gets added as a table row.
                </asp:TableRow>
            </asp:Table>`
<asp:CheckBox runat="server" ID="checkAll" CssClass="CheckAll" ClientIDMode="Static" />

复选框控件的
ClientIDMode
属性将允许您更轻松地使用客户端选择器,如下所示:

标记:

  <asp:CheckBox runat="server" ID="checkAll" CssClass="CheckAll" />


<asp:Table ID="tblitems" Visible="false" Width="80%" HorizontalAlign="Center" runat="server">
                <asp:TableRow>
                   //The data gets added as a table row.
                </asp:TableRow>
            </asp:Table>`
<asp:CheckBox runat="server" ID="checkAll" CssClass="CheckAll" ClientIDMode="Static" />
MSDN文档


注意:
clientdmode
在ASP.NET 4.0及更高版本中可用。

由于每个复选框都位于一个带有类“chkBox”的范围内,请使用单击处理程序上的该选择器定位复选框:

$('.CheckAll').on('click', function (event) {
    var checked = $(this).prop('checked');
    $('.chkBox :checkbox').prop('checked', checked);
});
如果将所有要在容器div中选中的复选框包装起来,则会更精确:

<div id="myCheckboxes">
    // .NET code here
</div>

我相信卡尔已经改进了这种方法。但是,如果您想坚持现有的内容,请将Javascript修改为以下内容:

$('.CheckAll').find(':checkbox').click(function (event) {
    alert("start");
    if (this.checked) {
        // Iterate each checkbox
        $(':checkbox').each(function () {
            this.checked = true;
        });
        alert("end");
    }
});

下面的代码基本上选择了所有复选框,并根据CheckAll复选框更改复选状态

<script type="text/javascript">
    $(document).ready(function () {
        $('#<%= CheckAll.ClientID %>').click(function() {
            var checkedStatus = this.checked;
            $("input[type='checkbox']").attr('checked', checkedStatus);
        });
    });
</script>

<asp:CheckBox runat="server" ID="CheckAll" />
<asp:CheckBox runat="server" ID="Check1" />
<asp:CheckBox runat="server" ID="Check2" />
<asp:CheckBox runat="server" ID="Check3" />
<asp:CheckBox runat="server" ID="Check4" />


$(文档).ready(函数(){
$('#')。单击(函数(){
var checkedStatus=this.checked;
$(“输入[type='checkbox']”)。attr('checked',checkedStatus);
});
});
单个页面中有多组复选框 如果在一个页面中有多组复选框,则可以使用类来区分它们

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" 
    Inherits="WebApplication2012.WebForm1" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            // Selects all enabled checkboxes
            $("#<%= CheckAll.ClientID %>").click(function () {
            var checkedStatus = this.checked;
            $(".myCheckBox input[type='checkbox']").attr('checked', checkedStatus);
        });
    });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:CheckBox runat="server" ID="CheckAll" Text="Check All" CssClass="myCheckAll" /><br />
        <asp:CheckBox runat="server" ID="Check1" Text="Check1" CssClass="myCheckBox" /><br />
        <asp:CheckBox runat="server" ID="Check2" Text="Check2" CssClass="myCheckBox" /><br />
        <asp:CheckBox runat="server" ID="Check3" Text="Check3" CssClass="myCheckBox" /><br />
        <asp:CheckBox runat="server" ID="Check4" Text="Check4" CssClass="myCheckBox" />
    </form>
</body>
</html>

$(文档).ready(函数(){
//选中所有启用的复选框
$(“#”)单击(函数(){
var checkedStatus=this.checked;
$(“.myCheckBox输入[type='checkbox']”).attr('checked',checkedStatus);
});
});





我使用下面的脚本实现了它。这并不适用于所有场景,但到目前为止,它对我的场景非常有效。谢谢

加价

<asp:CheckBox runat="server" ID="CheckAll" OnClick="toggle(this)" />

Javascript

  function toggle(source) {


                checkboxes = document.getElementsByTagName('input');

                for (var i = 0, n = checkboxes.length; i < n; i++) {
                    checkboxes[i].checked = source.checked;
                }

            }
功能切换(源代码){
复选框=document.getElementsByTagName('input');
对于(变量i=0,n=checkbox.length;i
标记(来自记录)是什么样子?@DGibbs更新了问题谢谢!您是否可以将此选择器
$(':checkbox')。每个(函数(){
更改为
$('.chkBox input')。每个(函数(){
?这有助于确定主复选框的目标,但我无法对要执行选中操作的框进行分组。
就是这样的结果。生成的项目列表在哪里?我正在更新我没有编写的旧现有代码。选中问题。这是针对outter span标记。如果查看页面源代码并查看t
#
提供的id是为父项span而不是复选框提供的。我不理解您的评论。就我测试上述代码而言,它们都工作正常。哪个部分对您不起作用?我无法启动它。当我查看源代码并看到父项标记的id时。这可能与页面中的其他代码有关。我上载了整个代码。因此,请创建一个没有母版页的新
Web表单
页面,并对其进行调试。此外,您希望使用Chrome浏览器控制台查看是否存在脚本错误。我认为这也与现有代码有关。我刚刚通过使用
功能切换(源代码)使其正常工作{checkbox=document.getElementsByTagName('input');for(var i=0,n=checkbox.length;i
  function toggle(source) {


                checkboxes = document.getElementsByTagName('input');

                for (var i = 0, n = checkboxes.length; i < n; i++) {
                    checkboxes[i].checked = source.checked;
                }

            }