Asp.Net AJAX中嵌套UpdatePanel中的异步回发之间的区别

Asp.Net AJAX中嵌套UpdatePanel中的异步回发之间的区别,asp.net,ajax,asp.net-ajax,frameworks,partial-postback,Asp.net,Ajax,Asp.net Ajax,Frameworks,Partial Postback,在ASP.net AJAX项目(WebForms)中,我有一个UpdatePanel,在UpdatePanel中我有多个带有UpdatePanel的嵌套控件,基本上我有控件树 父控件是站点中巨大且非常重要的部分。我无法触摸它(而且它在许多地方被重用),UpdatePanel应该保持在当前位置 “更新”面板中的子控件具有相互分离的功能(它们也与UpdatePanel分离),以便仅刷新控件中的一部分 基本上,在Page_Load()上,我有一些代码,可以用数据实现每个子控件,例如,如果我有一个删除功

在ASP.net AJAX项目(WebForms)中,我有一个UpdatePanel,在UpdatePanel中我有多个带有UpdatePanel的嵌套控件,基本上我有控件树

父控件是站点中巨大且非常重要的部分。我无法触摸它(而且它在许多地方被重用),UpdatePanel应该保持在当前位置

“更新”面板中的子控件具有相互分离的功能(它们也与UpdatePanel分离),以便仅刷新控件中的一部分

基本上,在Page_Load()上,我有一些代码,可以用数据实现每个子控件,例如,如果我有一个删除功能,可以修改子控件数据。步骤如下:

首先显示控件(ParentControl)

  • 页面加载()->完全填充数据
如果单击“删除”:

  • Page_Load()->fullfill data/*不想在此处调用此命令*/

  • 事件删除->修改数据

           ->fullfill data again!
    
我需要在AsyncPostbacks上进行编程更改,并使用on Page_Load()函数在您只想执行事件时不调用实现数据

在UpdatePanel之外,您可以使用IsAsyncPostbackIsCallBackIsPostback我肯定知道这一点,但这些属性在AsyncPostback上不会更改

我有两个AsycPostback,我需要对它们进行区分:

  • 首先,这只是显示数据和初始化
  • 执行事件并对控件进行修改
  • 有人知道要实现的技术吗,或者知道某种具有这种功能的框架吗


    有人有这个问题吗?

    我已经删除了我的另一个答案,因为你现在描述的问题与最初的完全不同,完全替换我的答案似乎很愚蠢,同时保留了以前版本的代表

    您必须检查导致异步回调的事件,或者检查每个更新面板中控件的某些值,以帮助您确定发生了哪些更改

    这是我决定不使用更新面板的关键原因之一,异步回发导致几乎所有页面生命周期事件发生,这使得在这样复杂的情况下很难真正看到发生了什么——我唯一一次愤怒地使用更新面板是在我的个人网站上,在处理大数据集时,围绕数据网格来保存整个页面的重新加载


    编辑以添加:

    只是想帮忙,一个快速的谷歌出现了:

    哪个控件启动了请求

    在回发请求中,ScriptManager id用作参数。通常,该值是启动部分回发的控件的id。格式为|。控件可以直接或通过UpdatePanel向ScriptManager注册。ScriptManager.AsyncPostBackSourceElementID属性将返回启动部分回发的控件的id

    示例语法:


    该页面还详细介绍了生命周期以及流程中的各种挂钩。

    这确实非常有效,ScriptManager.AsyncPostBackSourceElementID属性将返回一个唯一ID,您可以使用FindControl来确定触发asyncpostback的位置。感谢您的解决方案!
    ScriptManager1=UpdatePanel1|Button1