Pregunta

Tengo un control de usuario web con un UpdatePanel. En mi MainPage llegué al igual que 3 de esos controles. Ahora quiero tener un temporizador en el MainPage lo que desencadenaría los UpdatePanels en los controles de usuario Web.

¿Cómo puedo manejar esto?

Gracias de antemano.

¿Fue útil?

Solución

Uso del control Timer AJAX como un UpdatePanel disparador

Implementar una actualización de funciones en su control de usuario que llama a la actualización de funciones de sus Actualizar-Panels y lo llaman desde el MainPage en la fracción del temporizador-Evento para cada control. Ajuste el UpdateMode de UpdatePanels = de sus UserControls condicional.

Por ejemplo, en su Codebehind de control de usuario:

Public Sub Update()
    'bind Data to your UpdatePanel's content f.e.:
    Me.Label1.Text = Date.Now.ToLongTimeString
    Me.UpdatePanel1.Update()
End Sub

Y en su MainPage:

Private myControls As New List(Of WebUserControl1)

Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
     For i As Int32 = 1 To 10
        Dim newControl As WebUserControl1= DirectCast(LoadControl("./WebUserControl1.ascx"), WebUserControl1)
        myControls.Add(newControl)
        MainPanel.Controls.Add(newControl)
     Next
End Sub

Protected Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    'in this example added dynamically
    For Each ctrl As WebUserControl1 In Me.myControls 
        ctrl.Update()
    Next
End Sub

En ascx-archivo del control de usuario:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>             
    </ContentTemplate>
</asp:UpdatePanel>

En aspx-archivo del MainPage:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
     <asp:Panel ID="MainPanel"  runat="server">
        <asp:Timer ID="Timer1" runat="server" Interval="1000"></asp:Timer>
     </asp:Panel>             
    </ContentTemplate>
</asp:UpdatePanel>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top