如何在endRequest方法中获取源元素id?

时间:2013-03-26 05:00:19

标签: javascript jquery asp.net ajax asp.net-ajax


我如何获得在add_endRequest中导致回发的元素的id?
例如
   //连接结束请求流程,

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(requestComplete_Handler)

    //will be called after the async request completes.
    function requestComplete_Handler(sender, args)
    {
        var panel = sender._postBackSettings.sourceElement.id;
        switch (panel)
        {
            case "<%=upSubAccount.ClientID %>":
                __doPostBack('<%=upAllocationChart.ClientID%>');
                break;
            case "<%=upAllocationChart.ClientID%>" :   
               __doPostBack('<%=upTotal.ClientID %>');
            break;
        }
    }

虽然这种方法有效,但每次都没有 sender._postBackSettings.sourceElement.id;
感谢。

1 个答案:

答案 0 :(得分:0)

您必须使用我在previous question的答案中建议的相同方法。

第一个参数是事件目标 这是触发事件的元素 但是,您可以轻松地将其存储在您自己的变量中并稍后访问它 您只需要用自己的功能替换__doPostBack

var orignalDoPostback = __doPostBack;
var lastEventTarget = "";
var lastEventArgument = "";
__doPostBack = function(eventTarget, eventArgument)
{
   lastEventTarget = eventTarget;
   lastEventArgument = eventArgument;
   orignalDoPostback(eventTarget, eventArgument);
}

然后您可以根据需要使用它。