选中/取消选中datalist之外的按钮单击的所有复选框

时间:2012-03-01 09:30:30

标签: c# asp.net 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个按钮

 

我想检查所有复选框,当用户点击Check All btn,并取消选中所有复选框,当用户点击Uncheck All 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],因为将来在datalist中添加了一些东西然后我需要更改索引..任何jquery来改变这个函数

2 个答案:

答案 0 :(得分:2)

请尝试以下

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);

答案 1 :(得分:1)

我认为,你必须使用jQuery。

检查:

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

取消选中:

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