Member 14760154 Ответов: 1

Выберите и снимите флажок все в C#


Я разрабатывал веб-сайт ,

Появилась возможность вставлять данные сотрудников в базу данных,

Я думаю, чтобы сделать его эффективным ,
Его лучше для пользователя ,может несколько данных в один клик


поэтому я создаю меню checkboxlist,


Проблема в том ,что я хочу создать функцию select/deselect all ,

Когда я был отмечен флажком ,
весь список чекбоксов был выбран,
но когда я был снят один из элементов списка чекбоксов,
я надеюсь, что флажок снят,но он не снят,

Что я уже пробовал:

это мой код. ,


<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%: Title %>.</h2>
      <asp:DropDownList id="ddlshift" runat="server" AutoPostBack="true" Width="100%" class="chosen-select"></asp:DropDownList> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidatorCuti" runat="server" ForeColor="Red" ErrorMessage="Reason tidak boleh kosong" ControlToValidate="ddlshift" ValidationGroup="grpTambah"></asp:RequiredFieldValidator>
      <asp:CheckBox runat="server" ID="cbSelectAll" onclick="CheckUncheckall(this)" Text="Select/Deselect All" CssClass="JchkAll" onchange="Selectall();"/>
  
    <asp:CheckBoxList runat="server" ID="checkbox2" OnSelectedIndexChanged="chklist_selected" OnLoad="chklist_selected" >
    </asp:CheckBoxList>
    <asp:Label runat="server" ID="label1"></asp:Label>
    
    <asp:Label runat="server" ID="label2"></asp:Label>

    <asp:Button ID="button1" runat="server" OnClick="test"  Text ="test"/>
    <script type="text/javascript">
    function Selectall() {
  if ($('.JchkAll').is(':checked')) {
      $('.checkbox2').attr('checked', 'true');
  }
  else if ($('.checkbox2').element.is(':unchecked')) {
      $('.JchkAll').attr('checked', 'false');
  }
  else {
      $('.checkbox2').removeAttr('checked', 'false');
        }
    }
    </script>
    <script  type="text/javascript">
         function CheckUncheckall(chk) {
            var chks = document.getElementById("<% = checkbox2.ClientID %>").getElementsByTagName("input");
        for (var i = 0; i < chks.length; i++) {
            if (chks[i].type == "checkbox") chks[i].checked = chk.checked;
        }
    }
    </script>
</asp:Content>



Как я могу решить эту проблему?

1 Ответов

Рейтинг:
1

Richard Deeming

Попробовать это:

<asp:CheckBox runat="server" ID="cbSelectAll" Text="Select/Deselect All" CssClass="JchkAll" />

<asp:CheckBoxList runat="server" ID="checkbox2" OnSelectedIndexChanged="chklist_selected" OnLoad="chklist_selected" />

<script>
$(function(){
    var cbSelectAll = '#<%= cbSelectAll.ClientID %>';
    var checkbox2 = '#<%= checkbox2.ClientID %>';
    
    // Update the state of the options when the "select all" checbox is ticked/unticked:
    $(document).on("click", cbSelectAll, function(){
        $(checkbox2).find("input:checkbox").prop("checked", this.checked);
    });
    
    // Update the state of the "select all" checkbox when an option is ticked/unticked:
    var toggleAllSelected = function(){
        var allSelected = $(checkbox2).find("input:checkbox:not(:checked)").length === 0;
        $(cbSelectAll).prop("checked", allSelected);
    };
    
    $(document).on("click", checkbox2 + " input:checkbox", toggleAllSelected);
    toggleAllSelected(); // Set the initial state of the "select all" checkbox
});
</script>