Наличие отдельных UpdatePanels позволит вам обновлять отдельные области страницы, что приведет к меньшему количеству нисходящего потока и потенциально меньшей работе на стороне сервера.
Например. Если у вас есть страница с Label
, окруженным UpdatePanel
, вместе с GridView
, окруженным UpdatePanel
, вы можете добавить Timer
, который отправляет сообщение на сервер каждые 5 секунд и обновляет Метка для текущего DateTime. При этом вам не нужно будет повторно привязывать свою сетку на стороне сервера, потому что содержимое сетки не участвует в последующем ответе.
Результат будет следующим: связать метку и сетку по первому запросу. Обновить только метку на каждом таймере таймера.
РЕДАКТИРОВАТЬ: Пример добавлен.
Markup:
<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>
CodeBehind:
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
}