gpt4 book ai didi

javascript - ASP gridview的Reload事件

转载 作者:行者123 更新时间:2023-11-28 00:35:39 24 4
gpt4 key购买 nike

我正在尝试修复使用 ASP GridView 的旧 asp.net 应用程序中的一些问题。有几个事件绑定(bind)到网格。说排序,行单击等。我想在加载/重新加载完成后执行一些js函数(例如使用标题单击等排序后)。

我试过了

  1. JQuery 的就绪函数,仅在页面加载时触发。
  2. 在网格旁边放置一个脚本 block
  3. 将 RegisterStartupScript 放置在 grid_sort 中(DataBind 发生的位置)

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

最佳答案

服务器端事件总是会导致整个页面生命周期。但如果有UpdatePanel混合在一起,那么您可能会得到部分页面回发,这不会触发页面加载事件。请记住,无论如何,整个页面生命周期都会发生。

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

通常我会将其 ClientIDMode 设置为静态,以使 JS 方面的工作变得更轻松。例如,如果你有这个:

  <asp:HiddenField ID="hfSomeData" runat="server" ClientIDMode="Static" 
Value="Something set after handling some gridview event"

然后您可以在 javascript 端执行此操作来访问该值:

  $("#hfSomeData").val();

以下代码将执行PostBackHandler基于 jquery 就绪事件或来自 endRequest 的调用由 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
}

关于javascript - ASP gridview的Reload事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28541745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com