拥有更集中的updatedpanel是否比整个页面只有一个大的通用updatedpanel有帮助?
本文关键字:updatedpanel 有一个 有帮助 集中 是否 拥有 | 更新日期: 2023-09-27 18:01:31
在更少的元素周围有更集中的updatedpanel,而不是在整个页面周围只有一个大的通用UpdatePanel吗?这样做的好处是什么?
拥有独立的UpdatePanels将允许您更新页面的隔离区域,从而减少下游和潜在的服务器端工作。
例如。如果您有一个页面,其中Label
被UpdatePanel
包围,GridView
被UpdatePanel
包围,那么您可以添加Timer
,它每5秒向服务器发送一次帖子,并将Label更新为当前日期时间。这样做时,您就不必在服务器端重新绑定网格,因为下游响应中不涉及网格的内容。
编辑:添加示例
标记:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="5000" ontick="Timer1_Tick">
</asp:Timer>
<asp:Label ID="Label1" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server"></asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
后台代码:protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Bind Grid, only on first load
}
}
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString(); //Set label
UpdatePanel1.Update(); //Update only Label's update panel
}
请记住,UpdatePanel只告诉引擎哪个控件需要重新绘制;页面的整个生命周期仍然发生。
这并不是在贬低重绘较小元素的好处。