繁体   English   中英

选中/取消选中位于数据列表外部的按钮单击时的数据列表的所有复选框

[英]check/uncheck all checkbox of datalist on button click which is outside of datalist

我在复选框旁边有一个数据列表

<asp:DataList ID="dlst1" runat="server" RepeatDirection="Horizontal" OnItemDataBound="dlst1_ItemDataBound" CaptionAlign="Left">
 <ItemTemplate>
       <asp:ImageButton ID="btnImage" runat="server" />

        <asp:Label ID="lbl" runat="server"/>

       <asp:CheckBox ID="Chkbox" runat="server"  TextAlign="Right" />
  </ItemTemplate>
</asp:DataList>

我有2个按钮

我想在用户单击“检查所有btn”时选中所有复选框,而在用户单击“取消选中所有btn”时取消选中“所有复选框”,我不希望任何帖子发回,如何在客户端执行。

我在尝试

 function CheckOrUncheckAll(isChecked) {
     var dataList = document.getElementById('<%= DataList.ClientID %>');
     for (var index = 0; index < dataList.rows.length; index++) {
         for (var cIndex = 0; cIndex < dataList.rows[index].cells.length; cIndex++) {
             dataList.rows[index].cells[cIndex].childNodes[3].checked = isChecked;
                            }
                    }
                    return false;
            }

    <asp:Button ID="btnCheckAll" runat="server" Text="Check All" OnClientClick="return CheckOrUncheckAll(true)" />
    <asp:Button ID="btnUnCheckAll" runat="server" Text="Uncheck All" OnClientClick="return CheckOrUncheckAll(false)" />

它的工作正常,但我不想使用childNodes [3],因为将来在数据列表中添加了一些东西,那么我需要更改索引。

请在下面尝试

function CheckUnCheckAll(checkoruncheck)
        {
            var list = document.getElementById("<%=dlst1.ClientID%>") ;
            var chklist = list.getElementsByTagName("input");
            for (var i=0;i<chklist.length;i++)
            {
                if (chklist[i].type=="checkbox" )
                {
                    chklist[i].checked = checkoruncheck;
                }
            } 
        }

称其为

CheckUnCheckAll(true);

要么

CheckUnCheckAll(false);

我认为,您必须使用jQuery。

去检查:

$("#<%=btnCheckAll.ClientID %>").click(function() {
     $("#<%= dlst1.ClientID %> input:checkbox").attr("checked", "checked");
  });

取消选中:

$("#<%=btnUnCheckAll.ClientID %>").click(function() {
     $("#<%= dlst1.ClientID %> input:checkbox").removeAttr("checked");
  });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM