Обновить код Javascript в раскрывающемся списке автопостбэка

У меня есть выпадающий список на моей странице с автопостбэком:

     <table>
        <tr>
        <td>
         <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                 <asp:DropDownList ID="ddlClients" runat="server" DataValueField="IdClient"                                                DataTextField="Company" AutoPostBack="true" ViewStateMode="Enabled">
                 </asp:DropDownList>
               </ContentTemplate>
         </asp:UpdatePanel>
        </td>
        </tr>
    <tr>

И список флажков:

      <td>
       <div id="lnkShowHideUsers" onclick="ShowHideCheckBoxList();">                                
       <span id="spanUsers"  runat="server">User/s</span> 
  </div>     
   <div id="td_Checkboxlist"  style="display: none" >                           
    <asp:CheckBoxList  ID="ddlUsersForCompany" runat="server" OnClick="ShowHideSpanUsers();"  DataValueField="UserId" DataTextField="UserName" SelectionMode="Multiple"
        ViewStateMode="Enabled" RepeatLayout="OrderedList">                                   
     </asp:CheckBoxList >
    </div>                            
   </td>
    </tr>
        </table>

Когда я выбираю вариант из раскрывающегося списка для клиентов, код javascript для контрольного списка теряется.

Я пытался использовать этот код на мой взгляд:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server">
        <script type="text/javascript">
            $(document).ready(function () { 
           Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

    ShowHideSpanUsers();

      });    
        </script> 

И это функция javascript, чтобы скрыть или показать диапазон, если какой-либо флажок установлен или не установлен:

 <script type="text/javascript">
        function ShowHideSpanUsers() {

            var cont = 0;
            $(':checkbox').each(function (index, item) {
                if (item.checked == true) {
                    cont = cont + 1
                }
            });

            if (cont == 0) {
                $('table div span').hide();
            }
            else {
                $('table div span').show();
            }
        }    
</script>

JavaScript для списка флажков работает правильно, пока я не выберу опцию для раскрывающегося списка. Как я могу снова обновить код javascript? Спасибо.


person Esraa_92    schedule 24.11.2015    source источник


Ответы (1)


Вам нужно сделать что-то вроде этого, и в prm.add_endRequest вы снова вызовете событие

$(document).ready(function() {
    // bind your jQuery events here initially
});

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_endRequest(function() {
    // re-bind your jQuery events here
});

вот полное описание:

jQuery $(document).ready и UpdatePanels?

person Ayman Barhoum    schedule 24.11.2015
comment
Спасибо за ваш ответ, я пытался поместить оба в одну и ту же панель обновлений, и это все еще не работает. - person Esraa_92; 24.11.2015
comment
@ Lore_98 проверьте мой обновленный ответ, может это вам поможет - person Ayman Barhoum; 24.11.2015
comment
Я получаю это сообщение об ошибке: Uncaught ReferenceError: Sys не определен - person Esraa_92; 24.11.2015