ASP.NET/AJAX - panneau de mise à jour de contrôle utilisateur Web déclenchement de l'extérieur
-
03-10-2019 - |
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.
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>