установите / снимите все флажки списка данных по нажатию кнопки, которая находится вне списка данных - PullRequest
0 голосов
/ 01 марта 2012

У меня есть дата в стороне, у меня есть флажок

<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, когда пользователь нажимает на 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 ]

2 голосов
/ 01 марта 2012

, пожалуйста, попробуйте ниже

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 голос
/ 01 марта 2012

Я думаю, вы должны использовать jQuery.

Для проверки:

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

Чтобы снять отметку:

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