我有一个动态加载页面上多个用户控件的页面。我在每个用户控件上都有一些按钮,这些按钮会导致服务器端事件执行与触发操作的用户控件相关的某些处理。
我遇到的问题是,这个按钮单击会导致整个页面重新加载(因为所有动态加载的控件都需要在每次回发时重新加载),因为所有用户控件都会使页面变慢。
当用户与其中一个用户控件交互时,有没有办法告诉.NET忽略其他用户控件?
所有用户控件都在updatepanel中,模式设置为条件。
答案 0 :(得分:3)
删除更新面板并切换到使用jquery和JSON。
您可以更多地关注代码,并且应该能够放弃所有控件加载垃圾。
基本问题是更新面板仍然需要执行整页才能发回所需的一小部分数据。通过结合页面方法或Web服务方法转向jquery,您的页面不必为每个“面板”更新重新构建。
答案 1 :(得分:0)
专门回答你的问题。没有。没有办法“告诉.NET忽略其他用户控件”。当然,您可以告诉您的应用程序忽略一些事情。也许你遗漏了一些if (!Page.IsPostBack) {}
陈述?
答案 2 :(得分:0)
您应该能够在您提到的方案中使用UpdatePanels。必须有一些特定于您的实现的内容导致整个页面刷新。我建议将其剥离以隔离问题。我创建了以下示例,它按预期工作...只刷新了触发的UpdatePanel:
当我单击UpdatePanel内的任一按钮时,只有该面板刷新(即使在每个异步回发上调用两次LoadControl以重新创建控件层次结构)。