我有一个页面,在其自己的更新面板中有两个动态加载的用户控件。在加载用户控件时,我执行更新表格单元格的css的javascript。
ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "Load_RunScript()", true);
两个用户控件都有一个按钮,每个按钮都会导致回发,并且在服务器端执行JS以进行一些更改。我遇到的问题是,当我点击其中一个用户控件(Say UCtlA)上的按钮时,回发会导致用户控件被动态重新加载,这会执行UCtlB中的onload脚本,导致页面执行速度变慢。 / p>
由于UCs位于UpdatePanels中,我的理解是不应该在回发上重新呈现UI。为什么会发生这种情况?解决方案是什么?
答案 0 :(得分:0)
UpdatePanels导致类似于页面回发的回发。为避免在Pageload中执行不必要的工作,请检查ScriptManager.IsInAsyncPostback属性以检测UpdatePanel回发。只有导致回发的UpdatePanel中的控件才会更新其GUI。
答案 1 :(得分:0)
添加UpdateMode =“Conditional”属性,可能还有ChildrenAsTriggers =“false”
老实说,我会说避开UpdatePanels,因为它们是狗,特别是嵌套的UpdatePanels。