2009-10-02 71 views
1

当您在一个页面上有多个UpdatePanel时,有没有办法在后面的代码中找出哪个Update Panel触发了回发?看起来Request["__EVENTTARGET"]不是这样做的可靠方法。多个更新面板

回答

1

UpdatePanel不会触发PostBacks,它拦截它们。 PostBack的创始人就像一个按钮。如果您拥有所有交互式元素的事件处理程序,那么您自然知道哪个事件处理程序运行哪个事件处理程序。

+0

是的,我应该说“更新面板中的控件触发了回发”。我有同一个用户控件的多个实例,其中有一个updatepanel。 – Nick 2009-10-02 15:15:36

+0

@unnown所以用户控件的正确实例中的事件处理程序应该触发。如果我们知道你想要完成什么,它可能会更容易帮助。 – 2009-10-02 15:23:17

0

你可以得到回传元素的ID在客户端上使用以下

function pageLoad(sender, args) { 

// add function to the PageRequestManager to be executed on async postback initialize 
var prm = Sys.WebForms.PageRequestManager.getInstance(); 
     prm.add_initializeRequest(InitializeRequest); 
} 


function InitializeRequest(sender, args) { 
    if(args._postBackElement.id === 'id_of_element_in_question' {    
     // do whatever 
    }   
} 

得到它的服务器上,想必你会知道哪些控制/事件引发回传,因为它会被处理在代码隐藏的相关事件处理程序中。