ASP.NET/AJAX - panneau de mise à jour de contrôle utilisateur Web déclenchement de l'extérieur

StackOverflow https://stackoverflow.com/questions/2773739

Question

J'ai un contrôle utilisateur Web avec un UpdatePanel. Sur mon mainpage je suis arrivé comme trois de ces contrôles. Maintenant, je veux avoir une minuterie dans le mainpage qui déclencherait les UpdatePanels dans les contrôles utilisateur Web.

Comment puis-je gérer cela?

Merci à l'avance.

Était-ce utile?

La solution

Utilisation de la minuterie AJAX comme un UpdatePanel Trigger

Mettre en œuvre une mise à jour-fonction dans votre UserControl qui appelle la mise à jour-fonction de leur mise à jour-panneaux et l'appeler de la Mainpage dans le-événement pour top du minuteur chaque contrôle. Réglez le UpdateMode des UpdatePanels de votre UserControls = sous condition.

Par exemple, dans votre Codebehind de UserControl:

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

Et dans votre 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

Dans ascx fichier du UserControl:

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

Dans ASPX fichier du 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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top