C# 在.NET web应用程序中添加第二个endRequestHandler

C# 在.NET web应用程序中添加第二个endRequestHandler,c#,javascript,asp.net,request,C#,Javascript,Asp.net,Request,我是C#语言的新手,尝试扩展一个已经存在且未经维护的.NET web应用程序时,我感到非常困惑 该应用程序有一个Web用户控件,其中有一个按钮,单击该按钮时,通过.ascx中的这段JavaScript代码刷新其内部内容: Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler); function endRequestHandler(sender, args) { var btnId

我是C#语言的新手,尝试扩展一个已经存在且未经维护的.NET web应用程序时,我感到非常困惑

该应用程序有一个
Web用户控件
,其中有一个按钮,单击该按钮时,通过.ascx中的这段JavaScript代码刷新其内部内容:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);

function endRequestHandler(sender, args) {
    var btnId = '<%= btn.ClientID %>'
    if (sender._postBackSettings.sourceElement.id == btnId) {
        // loads a popup with the new content
    }
}
令人惊讶的是,当第一个
btn
被点击时,
警报就会弹出,而第二个
btnStats则不会弹出


我认为问题的原因是
btnStats
没有触发请求,但正如我所说的,我对这方面还不熟悉,不知道为什么。操作完成得很好,唯一不起作用的就是脚本中的内容。有什么提示吗?

我相信这就是if条件的目的——检查单击了哪个按钮。JavaScript的事件模型不允许附加多个处理程序(至少不需要额外的工作),因此这可能是下一个最好的方法

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);

function endRequestHandler(sender, args) {
    var btnId = '<%= btn.ClientID %>'
    var btnStatsId = '<%= btnStats.ClientID %>'
    if (sender._postBackSettings.sourceElement.id == btnId) {
        // loads a popup with the new content
    } 
    else if (sender._postBackSettings.sourceElement.id == btnStatsId) {
        // loads another popup
    }
}
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
函数endRequestHandler(发送方,参数){
变量btnId=''
变量btnStatsId=“”
if(发送方。\u postBackSettings.sourceElement.id==btnId){
//加载带有新内容的弹出窗口
} 
else if(发送方。\u postBackSettings.sourceElement.id==btnStatsId){
//加载另一个弹出窗口
}
}

谢谢,我也试过了,但还是没有。如果发送方是
btnStats
,则该
sender
参数不会得到任何信息。这就是为什么我认为请求处理程序会忽略它。
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);

function endRequestHandler(sender, args) {
    var btnId = '<%= btn.ClientID %>'
    var btnStatsId = '<%= btnStats.ClientID %>'
    if (sender._postBackSettings.sourceElement.id == btnId) {
        // loads a popup with the new content
    } 
    else if (sender._postBackSettings.sourceElement.id == btnStatsId) {
        // loads another popup
    }
}