Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: noviembre 2007
En este tutorial se utilizará un control Timer para actualizar el contenido de dos controles UpdatePanel. El control Timer se colocará fuera de los dos controles UpdatePanel y se configurará como un desencadenador de ambos paneles.
Requisitos previos
Para implementar los procedimientos de este tutorial necesitará:
Microsoft Visual Studio 2005 o Microsoft Visual Web Developer Express.
Un sitio web ASP.NET habilitado para AJAX.
Para actualizar los controles UpdatePanel durante un intervalo programado
Cree una nueva página y cambie a la vista Diseño.
Si la página aún no contiene un control ScriptManager, en la ficha Extensiones AJAX del cuadro de herramientas, haga doble clic en el control ScriptManager para agregarlo a la página.
.png)
En el cuadro de herramientas, haga doble clic en el control Timer para agregarlo a la página web.
.png)
Nota:El control Timer puede funcionar como un desencadenador dentro o fuera de un control UpdatePanel. En este ejemplo se muestra cómo usar el control Timer fuera de un control UpdatePanel. Para obtener un ejemplo de cómo se utiliza un control Timer dentro de un control UpdatePanel, vea Tutorial: Introducción al control Timer.
En el cuadro de herramientas, haga doble clic en el control UpdatePanel para agregar un panel a la página y, a continuación, establezca su propiedad UpdateMode en Conditional.
.png)
Haga doble clic de nuevo en el control UpdatePanel para agregar un segundo panel a la página y, a continuación, establezca su propiedad UpdateMode en Conditional.
.png)
Haga clic dentro del control UpdatePanel denominado UpdatePanel1 y, en la ficha Estándar del cuadro de herramientas, haga doble clic en el control Label para agregarlo a UpdatePanel1.
Establezca la propiedad Text de la etiqueta en UpdatePanel1 no actualizado todavía.
.png)
Agregue un control Label a UpdatePanel2.
Establezca la propiedad Text de la segunda etiqueta en UpdatePanel2 no actualizado todavía.
.png)
Establezca la propiedad Interval del control Timer en 10000.
La propiedad Interval se define en milisegundos, de modo que si la propiedad Interval se establece en 10.000 milisegundos actualizará los controles UpdatePanel cada 10 segundos.
Nota:En este ejemplo, el intervalo del temporizador se establece en 10 segundos. Así, al ejecutar el ejemplo, no tiene que esperar mucho tiempo para ver los resultados. Sin embargo, cada intervalo del temporizador devuelve datos al servidor y genera tráfico de red. Por consiguiente, en una aplicación de producción debería establecer el intervalo al tiempo más largo que aún resulte práctico para su aplicación.
Haga doble clic en el control Timer para crear un controlador para el evento Tick.
Agregue código al controlador que establece la propiedad Text de los controles Label1 y Label2 en la hora actual.
Partial Class _Default Inherits System.Web.UI.Page Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick Label1.Text = "UpdatePanel1 refreshed at: " & _ DateTime.Now.ToLongTimeString() Label2.Text = "UpdatePanel2 refreshed at: " & _ DateTime.Now.ToLongTimeString() End Sub End Classpublic partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Timer1_Tick(object sender, EventArgs e) { Label1.Text = "UpdatePanel1 refreshed at: " + DateTime.Now.ToLongTimeString(); Label2.Text = "UpdatePanel2 refreshed at: " + DateTime.Now.ToLongTimeString(); } }Especifique Timer1 como el desencadenador de UpdatePanel1 y UpdatePanel2 agregando un control AsyncPostBackTrigger a ambos controles UpdatePanel. Puede hacer esto mediante declaración como se muestra en el código siguiente:
<Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> </Triggers>En el ejemplo siguiente se muestra el marcado de toda la página.
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" > <title>Untitled Page</title> </head> <body> <form id="form1" > <asp:ScriptManager ID="ScriptManager1" /> <div> <asp:Timer ID="Timer1" OnTick="Timer1_Tick" Interval="10000"> </asp:Timer> </div> <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" > <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> </Triggers> <ContentTemplate> <asp:Label ID="Label1" Text="UpdatePanel1 not refreshed yet."></asp:Label> </ContentTemplate> </asp:UpdatePanel> <asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" > <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> </Triggers> <ContentTemplate> <asp:Label ID="Label2" Text="UpdatePanel2 not refreshed yet."></asp:Label> </ContentTemplate> </asp:UpdatePanel> </form> </body> </html><%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head > <title>Untitled Page</title> </head> <body> <form id="form1" > <asp:ScriptManager ID="ScriptManager1" /> <div> <asp:Timer ID="Timer1" OnTick="Timer1_Tick" Interval="10000"> </asp:Timer> </div> <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" > <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> </Triggers> <ContentTemplate> <asp:Label ID="Label1" Text="UpdatePanel1 not refreshed yet."></asp:Label> </ContentTemplate> </asp:UpdatePanel> <asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" > <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> </Triggers> <ContentTemplate> <asp:Label ID="Label2" Text="UpdatePanel2 not refreshed yet."></asp:Label> </ContentTemplate> </asp:UpdatePanel> </form> </body> </html>Guarde los cambios y presione CTRL+F5 para ver la página en un explorador.
Espere al menos 10 segundos hasta que se actualicen los controles UpdatePanel.
Ambos paneles muestran la hora en la que se actualizaron.
Revisión
Este tutorial mostró cómo utilizar un control Timer con varios controles UpdatePanel para habilitar actualizaciones parciales de la página. Debe agregar un control ScriptManager y, a continuación, agregar los controles UpdatePanel. Un control Timer actualiza el contenido de los paneles al configurarlo como un desencadenador de los paneles.
Para obtener información sobre cómo utilizar un control Timer dentro de un control UpdatePanel, vea Tutorial: Introducción al control Timer.
Vea también
Conceptos
Información general sobre el control Timer
Información general sobre la representación parcial de páginas