如何实现ASP.NET中控制AJAX请求的启动检查?

更新于
2026-09-16 16:24:00
36阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计430个文字,预计阅读时间需要2分钟。

如何实现ASP.NET中控制AJAX请求的启动检查?

javascript使用ASP.NET 2.0、jQuery和AJAX,更新脚本以显示正确的方法签名:var prm=Sys.WebForms.PageRequestManager.getInstance();prm.add_endRequest(hideMessage);function hideMessage(sender, args) { var ctl=args.get(ctl);

asp.net 2.0 / jQuery / AJAX

<script type="text/javascript"> //updated to show proper method signature var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(hideMessage); function hideMessage(sender, args) { var ctl = args.get_postBackElement(); //check if ctl is the disired control //hide user notification message } </script>

我在页面上有几个可能启动AJAX请求的控件,但我只想在点击一个特定按钮时触发我的js.我如何检查启动请求的控件,以便我可以相应地触发JS.

编辑:我解决了这个问题,但我仍然想知道我是否可以这样做.

澄清:我无法从onclick事件中调用JS,因为该页面位于UpdatePanel内部,我只希望JS在AJAX请求结束时执行,并且它是由页面上的一个特定按钮触发的.在服务器端,我将myLabel.Text设置为某些文本,然后js检查$(myLabel.CliendID)的innerHTML是否为空并触发js.检查innerHTML是我的解决办法,因为我无法弄清楚如何检查AJAX请求的“发送者”.希望现在这更有意义.

edit2:我已经阅读了一些documentation,结果你可以检查“发送者”控件.

谢谢.

这就是我在代码中所做的工作,以确定哪个控件初始化了请求.所有的JavaScript代码.

function pageLoad() { if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler); Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(initializeRequest); } } function endRequestHandler(sender, args) { if (sender._postBackSettings.sourceElement.id == '<%= gvResults.ClientID %>') { //do something because of this... } } function initializeRequest(sender, args) { if (CheckForSessionTimeout()) { args.set_cancel(true); } else { if (sender._postBackSettings.sourceElement.id == '<%= gvResults.ClientID %>') { //do something because of this } } }

EDITHere是在客户端检查超时的方法.

如何实现ASP.NET中控制AJAX请求的启动检查?

var sessionTimeoutDateTime = new Date(); var sessionTimeoutInterval = <%= this.SesstionTimeoutMinutes %>; function CheckForSessionTimeout() { var currentDateTime = new Date() var iMiliSeconds = (currentDateTime - sessionTimeoutDateTime); if (iMiliSeconds >= sessionTimeoutInterval) { ShowSessionTimeout(); return true; } return false; }

标签:Ajax请求A

本文共计430个文字,预计阅读时间需要2分钟。

如何实现ASP.NET中控制AJAX请求的启动检查?

javascript使用ASP.NET 2.0、jQuery和AJAX,更新脚本以显示正确的方法签名:var prm=Sys.WebForms.PageRequestManager.getInstance();prm.add_endRequest(hideMessage);function hideMessage(sender, args) { var ctl=args.get(ctl);

asp.net 2.0 / jQuery / AJAX

<script type="text/javascript"> //updated to show proper method signature var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(hideMessage); function hideMessage(sender, args) { var ctl = args.get_postBackElement(); //check if ctl is the disired control //hide user notification message } </script>

我在页面上有几个可能启动AJAX请求的控件,但我只想在点击一个特定按钮时触发我的js.我如何检查启动请求的控件,以便我可以相应地触发JS.

编辑:我解决了这个问题,但我仍然想知道我是否可以这样做.

澄清:我无法从onclick事件中调用JS,因为该页面位于UpdatePanel内部,我只希望JS在AJAX请求结束时执行,并且它是由页面上的一个特定按钮触发的.在服务器端,我将myLabel.Text设置为某些文本,然后js检查$(myLabel.CliendID)的innerHTML是否为空并触发js.检查innerHTML是我的解决办法,因为我无法弄清楚如何检查AJAX请求的“发送者”.希望现在这更有意义.

edit2:我已经阅读了一些documentation,结果你可以检查“发送者”控件.

谢谢.

这就是我在代码中所做的工作,以确定哪个控件初始化了请求.所有的JavaScript代码.

function pageLoad() { if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler); Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(initializeRequest); } } function endRequestHandler(sender, args) { if (sender._postBackSettings.sourceElement.id == '<%= gvResults.ClientID %>') { //do something because of this... } } function initializeRequest(sender, args) { if (CheckForSessionTimeout()) { args.set_cancel(true); } else { if (sender._postBackSettings.sourceElement.id == '<%= gvResults.ClientID %>') { //do something because of this } } }

EDITHere是在客户端检查超时的方法.

如何实现ASP.NET中控制AJAX请求的启动检查?

var sessionTimeoutDateTime = new Date(); var sessionTimeoutInterval = <%= this.SesstionTimeoutMinutes %>; function CheckForSessionTimeout() { var currentDateTime = new Date() var iMiliSeconds = (currentDateTime - sessionTimeoutDateTime); if (iMiliSeconds >= sessionTimeoutInterval) { ShowSessionTimeout(); return true; } return false; }

标签:Ajax请求A