回发后未运行Javascript

回发后未运行Javascript,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,在ASP.Net中发生回发之前,我有一些Javascript可以很好地工作,但是当按钮单击发生回发事件时,脚本将不再运行 这是我正在使用的代码 function displayCheckboxInSubject() { var CountSelectedCB = []; console.log("in displayCheckBoxInSubject with loader"); $(".subjectCB").on("change loader", function (

在ASP.Net中发生回发之前,我有一些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

这是因为回发后不会执行document.ready()

Microsoft建议使用PageRequestManager设置请求处理程序。但是,您也可以从后端初始化控件并以这种方式启动它

我不认为这有什么了不起,但请看下面的答案:

更新:你能使用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>

函数pageLoad(){
$('#TextBox1').unbind();
$('#TextBox1').datepicker();
}

我需要把这个放在哪里?或者我应该删除它吗?这对我来说不起作用,我也不做异步回发-我试图做的是当用户在asp.net webform上单击“发送”将数据发送到数据库时,如果失败,则页面回发,而不保留值。页面现在保留了这些值,但现在已经停止了javascript的工作。那么,如果我使用更新面板,我会在哪里使用它?我会将复选框列表放在面板中,还是在其他地方使用它?将UpdatePanel放在表单中,并将控件放在表单中。请参阅此链接:我没有使用ajax更新面板,因此我不认为这是一个重复的问题。