一个更新面板与多个更新面板

时间:2008-09-16 13:58:43

标签: asp.net asp.net-ajax webforms

我有一个ASP.NET网页,它显示了在某些条件,按钮点击等方面需要更新的各种字段。我们使用ASP.NET Update Panel实现了AJAX,以避免可见的回发。

最初只有一个区域需要这种能力......很快就会扩展到其他领域。现在我的网页有多个UpdatePanel。

我想知道最好是将整个表单包装在一个UpdatePanel中,还是保留各个UpdatePanel。

使用ASP.NET UpdatePanel的最佳做法是什么?

7 个答案:

答案 0 :(得分:48)

多个面板要好得多。使用UpdatePanels的主要原因之一是减少流量并仅在线路上来回发送您需要的部分。通过仅使用一个更新面板,您每次都会回复完整的帖子,您只需使用一点Javascript来更新页面而不会出现闪烁。

如果页面中有一些部分需要一起更新,有些方法可以触发其他面板更新...但是你肯定应该使用多个更新面板。

答案 1 :(得分:36)

我要注意,使用多个更新面板时,您需要小心。确保将UpdateMode设置为Conditional。否则,当一个更新面板“回发”到服务器时,所有这些面板都会被回发。

我强烈建议使用这些工具

Web Development Helper(这是一个简短的教程Web Development Helper and ASP.NET Ajax

Fiddler

答案 2 :(得分:7)

这些答案中的任何一个都未提及选择之间的可维持性比较。第三个选项是您不使用任何更新面板并将自己留给反向ajax。查看有趣的项目:PokeInVisualJS.NET

答案 3 :(得分:5)

我认为最好使用多个UpdatePanel,因为UpdatePanel生成的POST大小。如果您可以使用手动AJAX方法来处理诸如更新字段之类的小事情,那就更好了。 WPF提供了一些javascript函数和方法来完成此任务。以下是一些可能有用的链接:

答案 4 :(得分:2)

我推荐多个更新面板。使用多个updatepanel将保持在asp.net Web应用程序中使用updatepanel的真正含义。由于我们甚至可以从另一个更新面板触发一个更新面板,因此可以更轻松地对页面范围的控件和行为进行编码。

答案 5 :(得分:2)

我完全同意使用多个更新面板而不是使用单个更新面板,当您只想要某个部分进行回发时 如果你想要整个页面回发,那么最好使用单个更新面板。

请确保为所有更新面板生成updatemode =“conditional”,否则所有updatepanel都会刷新。

另请查看以下帖子以了解更新面板的完整用法

http://www.codeproject.com/KB/aspnet/Select_List_Box.aspx

答案 6 :(得分:1)

不确定最佳做法,但根据我的经验,多个面板运行良好,并减少一次发送的数据量 - 从而导致整体响应时间增加。多个面板还可以降低每个服务器调用的复杂性。