2010-03-15 93 views
3

在asp.net中是否需要在每次回调期间重新构建整个页面?例如,我的网页分为三个不同的区域,每个区域都有一个更新面板。假设我想更新第三个区域,是否必须打扰其他两个区域的处理?在回调中重建整个页面?

例如可以说第二区有一个网格视图。三区回调中的更新面板更新其内容。我必须重新绑定第二区的网格吗?

感谢,

AJ

回答

1

是的,这是ASp.NET是如何完成的。如果您使用updatePanel/AJAX部分更新,您可能只会构建部分页面。但是,你的视图状态可能是一个问题。

你看到的基本上是ASP.NET模型的缺点之一。

1

默认情况下,UpdatePanels的“UpdateMode”设置为“Always”,这意味着只要页面上发生任何事情,它们就会更新。

尝试为所有三个UpdatePanel设置“UpdateMode”为“有条件”,看看是否有帮助。 (FWIW这对于我来说是作为编写UpdatePanel定义的一部分的标准做法。如果在页面的不同部分发生某些事情时需要更新UpdatePanel,则可以使用触发器或使用.Update()在后面的代码中更新它)

bgs264

编辑

我想我误解你的问题本来;我上面的建议可能会改善页面渲染时间,因为部分回发会导致客户端和服务器之间来回传送的代码变少。

但是,根据其他答案,所有控件都必须在每个页面加载/回发时通过其生命周期(初始化,加载,渲染)。