Javascript ASP gridview的重新加载事件

Javascript ASP gridview的重新加载事件,javascript,jquery,asp.net,gridview,reload,Javascript,Jquery,Asp.net,Gridview,Reload,我正在尝试修复使用asp GridView的旧asp.net应用程序中的一些问题。有几个事件绑定到网格。比如说sort、row click等。我想在加载/重新加载完成后执行一些js函数(比如在使用header click等进行排序之后) 我试过了 JQuery的ready函数,它只在页面加载时启动 将脚本块放置在网格旁边 将RegisterStartupScript置于grid_排序中(数据绑定发生的位置) 在排序后重新加载网格时,它们都不会触发。服务器端事件始终会导致整个页面生命周期。但是如果

我正在尝试修复使用asp GridView的旧asp.net应用程序中的一些问题。有几个事件绑定到网格。比如说sort、row click等。我想在加载/重新加载完成后执行一些js函数(比如在使用header click等进行排序之后)

我试过了

  • JQuery的ready函数,它只在页面加载时启动
  • 将脚本块放置在网格旁边
  • 将RegisterStartupScript置于grid_排序中(数据绑定发生的位置)

  • 在排序后重新加载网格时,它们都不会触发。

    服务器端事件始终会导致整个页面生命周期。但是如果混合中有
    UpdatePanel
    s,那么您可能会得到部分页面回发,这不会触发页面加载事件。请记住,不管发生什么情况,整个页面生命周期都会发生

    当您想在处理某种服务器端事件后执行一些客户端代码时,需要一种在页面完全呈现后将一些信息传递给JS/jQuery的方法。通常这是通过使用一个或多个
    控件来完成的

    通常我会将它的clientMode设置为static,以使JS方面的工作更轻松。例如,如果您有以下内容:

      <asp:HiddenField ID="hfSomeData" runat="server" ClientIDMode="Static" 
          Value="Something set after handling some gridview event"
    
    以下代码将根据jquery就绪事件或
    endRequest
    调用执行
    PostBackHandler
    ,调用由
    UpdatePanel
    部分页面更新发出

      // Handle Full Page postbacks
      $(function () {
        PostbackHandler(0);
      });
    
      // Handle Partial Page postbacks 
      //   i.e. when Gridview embedded in an UpdatePanel
      var prm = Sys.WebForms.PageRequestManager.getInstance();
      prm.add_endRequest(function(sender, args){
        PostbackHandler(1);
      });
    
      //PostBackType    : 0 for Full Postback
      //                : 1 for Partial Postback
      function PostbackHandler(PostBackType) {
    
        var passed_in_data = $("#hfSomeData").val();
    
        if (PostBackType === 0)
          // do postback stuff
        else
          // do partial postback stuff    
      }
    
      // Handle Full Page postbacks
      $(function () {
        PostbackHandler(0);
      });
    
      // Handle Partial Page postbacks 
      //   i.e. when Gridview embedded in an UpdatePanel
      var prm = Sys.WebForms.PageRequestManager.getInstance();
      prm.add_endRequest(function(sender, args){
        PostbackHandler(1);
      });
    
      //PostBackType    : 0 for Full Postback
      //                : 1 for Partial Postback
      function PostbackHandler(PostBackType) {
    
        var passed_in_data = $("#hfSomeData").val();
    
        if (PostBackType === 0)
          // do postback stuff
        else
          // do partial postback stuff    
      }