2015-10-26 2 views
0

У меня есть Javascript, который отлично работает до того, как postback произойдет в ASP.Net, однако, когда событие postback происходит от нажатия кнопки, сценарий больше не запускается.Javascript не работает после обратной передачи

это код, я использую

function displayCheckboxInSubject() { 
    var CountSelectedCB = []; 
    console.log("in displayCheckBoxInSubject with loader"); 
    $(".subjectCB").on("change loader", function() { 
    //$(".subjectCB").change(function() { 
     selectedCB = []; 
     notSelectedCB = []; 
     CountSelectedCB.length = 0; 
     $(".subjectCB").each(function() { 
      //alert("in here two") 
      if ($(this).find("input").is(":checked")) { 
       //alert("in here three") 
       CountSelectedCB.push($(this).find("input").val()); 
      } 
     }); 

     $("#txtSubject").val(CountSelectedCB.join(", ")); 
    }).trigger("loader"); 

} 

$(document).ready(displayCheckboxInSubject); 

Я был бы признателен, если кто-то может мне точку в правильном направлении, как решить эту проблему.

благодаря

Simon

+0

я не использую панель обновления Ajax, поэтому я не вижу, как это дубликат вопрос. –

ответ

0

Это происходит потому, что document.ready() не выполняется после обратной передачи.

Microsoft предлагает использовать PageRequestManager для настройки обработчика запросов. Но вы можете в качестве альтернативы инициализировать свой контроль из внутреннего блока и запустить его таким образом.

Я не могу взять кредит на это, но посмотрите пожалуйста этот ответ: answered on SO

UPDATE: Вы можете использовать UpdatePanel? Это должно заставить его работать.

<script type="text/javascript"> 
    function pageLoad() { 
    $('#TextBox1').unbind(); 
    $('#TextBox1').datepicker(); 
    } 
</script> 

<asp:ScriptManager runat="server" /> 

<asp:UpdatePanel runat="server"> 
    <ContentTemplate> 
    <asp:Button runat="server" ID="Button1" /> 
    <asp:TextBox runat="server" ID="TextBox1" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Базовый пример из Encosia

+0

где мне нужно положить это вместо этого? или я должен просто удалить его? –

+0

это не работает для меня, и я тоже не делаю async postback –

+0

- что я пытаюсь сделать, когда пользователь нажимает на веб-форму asp.net для отправки данных в базу данных, если это не удается, страница размещалась назад и не сохраняя значения. Страница теперь сохраняет значения, но теперь остановил работу javascript. Итак, если я использую панель обновления, где я буду использовать это? я бы поставил свой список флажков на панели или я бы использовал его где-нибудь еще? –

Смежные вопросы