2017-03-02 43 views
1

我正在使用ASP.NET Web窗体。我触发一个JavaScript事件来点击按钮。我的问题是这个事件在应用程序的第一次加载时仅被触发一次。似乎事件取消绑定的按钮。任何人都可以帮助我吗?仅在应用程序的第一次加载时触发了一次点击事件

这里是ASPX按钮控件

<asp:Button ID="btnGetReport" runat="server" Text="Apply"></asp:Button> 

,这里是JavaScript代码:

$("#btnGetReport").click(function() { 
    var fromDate = $('#txtDateFrom').val(); 
    var toDate = $('#txtDateTo').val(); 
    if (fromDate != "" && toDate != "") { 
     GetReport(fromDate, toDate); 
    } 
    else { 
     alert("\"Date From\" and \"Date To\" fields are required"); 
    } 
}); 

我第一次按一下按钮,它触发。点击()事件。但下次点击不会触发任何内容。

+0

请发布相关代码以重现问题,最好是[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。否则可能没有人能够帮助你。 – bassfader

回答

1

您使用的是UpdatePanel

如果答案是肯定的,那么您需要在页面加载和UpdatePanel更新后绑定点击事件。

$(function() { 
    var _initialize = { 
     ReportBindClick : function() { 
      $("#btnGetReport").on('click', function() { 
       var fromDate = $('#txtDateFrom').val(); 
       var toDate = $('#txtDateTo').val(); 
       if (fromDate != "" && toDate != "") { 
        GetReport(fromDate, toDate); 
       } 
       else { 
        alert("\"Date From\" and \"Date To\" fields are required"); 
       } 
      }); 
     } 
    } 

    // Bind on page load complete 
    _initialize.ReportBindClick(); 

    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_endRequest(function() { 
     // Bind after UpdatePanel update 
     _initialize.ReportBindClick(); 
    }); 
} 
相关问题