如何检查页面是否在 ASP.NET AJAX 上的保留函数 pageLoad 内回发

我正在寻找一种方法来检查 pageLoad() 是否由于回发/异步回发或由于被加载而在加载期间提升此方法并且还首次获得访问权限。

这类似于代码隐藏页内的 Page.IsPostback 住宅物业。

蒂亚,。 瑞奇

10
2022-06-07 14:37:53
资源 分享
答案: 9

这是我们与 isPostback 的 Ajax 匹配,我们已经使用了一段时间。

public static bool isAjaxRequest(System.Web.HttpRequest request)
    {//Checks to see if the request is an Ajax request
        if (request.ServerVariables["HTTP_X_MICROSOFTAJAX"] != null ||
            request.Form["__CALLBACKID"] != null)
            return true;
        else
            return false;
    }
0
2022-06-27 12:55:36
资源

@Dave Ward:完全利用 RunOnce 方法功能。 这解决了我的麻烦,而无需在附加到某个场合之前先检查处理程序是否存在。

我会将您的解决方案记录为已批准的答案。 再次感谢。

0
2022-06-08 03:32:07
资源

应用程序初始化 可能是一个更好的使用事件,如果您只想在第一次加载时执行代码。

0
2022-06-08 03:05:19
资源

您可以这样做的一种方法是在 Application.Init 中连接一个 Application.Load 训练器,然后让该处理程序在运行后解除绑定:

Sys.Application.add_init(AppInit);

function AppInit() {
  Sys.Application.add_load(RunOnce);
}

function RunOnce() {
  // This will only happen once per GET request to the page.

  Sys.Application.remove_load(RunOnce);
}

这将在 Application.Init 之后执行。 它必须是调用 pageLoad 之前的最后一点。

6
2022-06-08 02:54:51
资源

@Dave Ward:这通常会起作用。 尽管如此,代码是在动作对象上附加场合。 由于行为对象的产生发生在 Application.Init 期间,因此附加到那个场合会带来不可预知的行为。

如果有 PostInit 事件肯定会很好。

0
2022-06-08 02:54:32
资源

您仍然可以在整个异步调用中使用 Page.IsPostback。

0
2022-06-07 16:29:43
资源

@Darren:感谢您的解决方案。 我曾尝试使用事件参数 应用程序加载事件参数 作为参数创建 pageLoad(见下文)。 尽管如此,根据 这个

所有回发到 Web 服务器的加载时机都会引发,其中包括异步回发。

正如您所指出的,isPartialLoad 主页并不涵盖所有回发情况。 如果场合参数同样包含 isPostback 住宅属性,它将运行。

   function pageLoad(sender, arg) {
      if (!arg.get_isPartialLoad()) {
          //code to be executed only on the first load
      }
   }

@mmattax:我正在寻找可以从客户端(javascript)调用的属性。

4
2022-06-07 16:26:04
资源

您可以做的是大约连接 系统应用 类的加载事件。 之后,您可以使用 Sys.ApplicationLoadEventArgs 类的 isPartialLoad 住宅或商业财产。 我认为这肯定会让您知道您是否仍处于异步回发或其他状态。

要识别您是否保留在回发中,您必须在 Web 服务器端代码中处理它并将其生成给客户端。

2
2022-06-07 15:03:44
资源

如果它是回发/回调,您可能有一个隐藏的输入,您将其设置为 Web 服务器端的可识别值 - 以及您的 javascript 可以检查该值。

也就是说,我实际上希望有光顾 - 只是对此进行补救。

编辑: @mmattax - 我相信他正在寻找一种客户端补救措施 - 与之匹配的 JavaScript。

2
2022-06-07 15:03:27
资源