Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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
Javascript 访问网格中的不同复选框_Javascript_Asp.net - Fatal编程技术网

Javascript 访问网格中的不同复选框

Javascript 访问网格中的不同复选框,javascript,asp.net,Javascript,Asp.net,我有一个带有两列复选框的网格。 我想对每一列进行单独计数。我无法单独访问它们。 以下是我尝试过的: function CountChkBxCancel() { function CountChkBx() { for (var i = 0; i < document.forms[0].length; i++) { if (document.forms[0].elements[i].checked) { numChecked

我有一个带有两列复选框的网格。 我想对每一列进行单独计数。我无法单独访问它们。 以下是我尝试过的:

function CountChkBxCancel() {
    function CountChkBx() {  
        for (var i = 0; i < document.forms[0].length; i++) {
        if (document.forms[0].elements[i].checked) {
            numChecked = numChecked + 1;
        }
    }
    document.getElementById('<%=lblConfirmationCount.ClientID %>').value = numChecked;
    CountChkBxCancel();
    if (numChecked > 0) {
        document.getElementById('<%=lblConfirmationCount.ClientID %>').innerHTML = numChecked;
    }else {
        document.getElementById('<%=lblConfirmationCount.ClientID %>').innerHTML = '0';
    }
}
函数CountChkBxCancel(){
函数CountChkBx(){
对于(var i=0;i0){
document.getElementById(“”).innerHTML=numChecked;
}否则{
document.getElementById(“”).innerHTML='0';
}
}
此id用于网格中的两个复选框列

<ItemTemplate>
    <%-- <asp:Label ID="Label6" runat="server"> <%#         Container.DataItemIndex + 1 %></asp:Label> --%>
    <asp:CheckBox ID="chkNominee" runat="server" onclick="CountChkBx()" />
</ItemTemplate>
<ItemTemplate>
    <asp:CheckBox ID="chkCancel" runat="server" onclick="CountChkBxCancel()" />
</ItemTemplate>

如何访问这些不同ID的复选框计数?


 <script type="text/javascript">
      function CountChkBx(checkBox) {
           var checked = 0;
           var checkBoxes = document.getElementsByClassName(checkBox.parentNode.className);
           for (var i = 0; i < checkBoxes.length; i++) {
                if (checkBoxes[i].getElementsByTagName("INPUT")[0].checked) {
                     checked++;
                }
           }

           var label = null;
           switch (checkBox.parentNode.className) {
                case "cbNominee":
                     label = document.getElementById("<%= lblConfirmationCount.ClientID %>");
                     break;
                case "cbCancel":
                     label = document.getElementById("<%= lblCancelCount.ClientID %>");
                     break;
           }

           if (label) {
                label.innerHTML = checked.toString();
           }
      }
 </script>

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" >
      <Columns>
           <asp:TemplateField>
                <ItemTemplate>
                     <asp:CheckBox ID="chkNominee" runat="server" CssClass="cbNominee" onclick="CountChkBx(this)" />
                </ItemTemplate>
           </asp:TemplateField>
           <asp:TemplateField>
                <ItemTemplate>
                     <asp:CheckBox ID="chkCancel" runat="server" CssClass="cbCancel" onclick="CountChkBx(this)" />
                </ItemTemplate>
           </asp:TemplateField>
      </Columns>
 </asp:GridView>
 <br />
 Confirmed: <asp:Label runat="server" ID="lblConfirmationCount" />
 <br />
 Canceled: <asp:Label runat="server" ID="lblCancelCount" />
函数CountChkBx(复选框){ var=0; var checkBox=document.getElementsByCassName(checkBox.parentNode.className); 对于(变量i=0;i 确认:
取消:
函数CountChkBx(){
var confirmCount=0;
var cancelCount=0;
父项=document.getElementById(“”);
对于(i=1;i
Hi.我收到以下错误:Microsoft JScript运行时错误:“parentNode”为null或不是对象您是否使用与应答中相同的onclick属性?Microsoft JScript运行时错误:对象不支持此属性或方法..这是现在的错误..也是从代码隐藏调用时的错误..这导致了问题..我在这里已传递(此)。从代码隐藏调用时,我应该传递什么作为参数,以便它也计算页面加载计数。//string myScript=“CountChkBxTest();”;///ClientScript.RegisterStartupScript(this.GetType(),“myScript”,myScript,true);这就是我在网格绑定时所做的,而不是在表单中循环..我终于在网格中循环了。
             function CountChkBx() {
                    var confirmCount = 0;
        var cancelCount = 0;
        Parent = document.getElementById('<%= this.gvNominationList.ClientID %>');
        for (i = 1; i < Parent.rows.length; i++) {
            var tr = Parent.rows[i];
            //                var td = tr.firstChild;
            //                var item = td.firstChild;
            var td1 = tr.childNodes[0];
            var td2 = tr.childNodes[1];
            var item1 = td1.childNodes[0].firstChild;
            var item2 = td2.childNodes[0].firstChild;

            if (item1.type == "checkbox") {
                if (item1.checked)
                    confirmCount = confirmCount + 1;
            }

            if (item2.type == "checkbox") {
                if (item2.checked)
                    cancelCount = cancelCount + 1;
            }

        }
        document.getElementById('<%=lblConfirmationCount.ClientID %>').innerHTML = confirmCount;
        document.getElementById('<%=lblCancelCount.ClientID %>').innerHTML = cancelCount;
    }