gpt4 book ai didi

asp.net - 查看是什么控件发起了AJAX请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:38:44 27 4
gpt4 key购买 nike

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
}
}
}

编辑
这是在客户端检查超时的方法。

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;
}

关于asp.net - 查看是什么控件发起了AJAX请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/596645/

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