ASP.NET/AJAX - панель обновления веб-управления пользователем, запускаемая извне - PullRequest
1 голос
/ 05 мая 2010

У меня есть пользовательский веб-элемент управления с панелью обновления. На моей главной странице я получил три таких элемента управления. Теперь я хочу, чтобы на главной странице был таймер, который запускал бы панели обновления в пользовательских элементах управления.

Как мне это сделать?

Заранее спасибо.

1 Ответ

1 голос
/ 10 мая 2010

Использование элемента управления таймера AJAX в качестве триггера панели обновления

Реализация функции обновления в вашем UserControl, которая вызывает функцию обновления их панелей обновления и вызывает ее с главной страницы в событии TimerTick для каждого элемента управления Установите UpdateMode для UpdatePanels вашего UserControls = Условный.

Например, в коде вашего UserControl:

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

А на вашей главной странице:

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

В ascx-файле UserControl:

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

В aspx-файле главной страницы:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...