Asp.Net AJAX中嵌套UpdatePanel中的异步回发之间的区别
在ASP.net AJAX项目(WebForms)中,我有一个UpdatePanel,在UpdatePanel中我有多个带有UpdatePanel的嵌套控件,基本上我有控件树 父控件是站点中巨大且非常重要的部分。我无法触摸它(而且它在许多地方被重用),UpdatePanel应该保持在当前位置 “更新”面板中的子控件具有相互分离的功能(它们也与UpdatePanel分离),以便仅刷新控件中的一部分 基本上,在Page_Load()上,我有一些代码,可以用数据实现每个子控件,例如,如果我有一个删除功能,可以修改子控件数据。步骤如下: 首先显示控件(ParentControl)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()上,我有一些代码,可以用数据实现每个子控件,例如,如果我有一个删除功
- 页面加载()->完全填充数据
- Page_Load()->fullfill data/*不想在此处调用此命令*/
- 事件删除->修改数据
->fullfill data again!
有人有这个问题吗?我已经删除了我的另一个答案,因为你现在描述的问题与最初的完全不同,完全替换我的答案似乎很愚蠢,同时保留了以前版本的代表 您必须检查导致异步回调的事件,或者检查每个更新面板中控件的某些值,以帮助您确定发生了哪些更改 这是我决定不使用更新面板的关键原因之一,异步回发导致几乎所有页面生命周期事件发生,这使得在这样复杂的情况下很难真正看到发生了什么——我唯一一次愤怒地使用更新面板是在我的个人网站上,在处理大数据集时,围绕数据网格来保存整个页面的重新加载
编辑以添加: 只是想帮忙,一个快速的谷歌出现了: 哪个控件启动了请求 在回发请求中,ScriptManager id用作参数。通常,该值是启动部分回发的控件的id。格式为|。控件可以直接或通过UpdatePanel向ScriptManager注册。ScriptManager.AsyncPostBackSourceElementID属性将返回启动部分回发的控件的id 示例语法:
该页面还详细介绍了生命周期以及流程中的各种挂钩。这确实非常有效,ScriptManager.AsyncPostBackSourceElementID属性将返回一个唯一ID,您可以使用FindControl来确定触发asyncpostback的位置。感谢您的解决方案!
ScriptManager1=UpdatePanel1|Button1