ASP.NET/AJAX - لوحة تحديث مستخدم الويب تدور من الخارج
-
03-10-2019 - |
سؤال
لقد حصلت على عنصر تحكم مستخدم ويب مع updatePanel. على صفحة الرئيسية الخاصة بي ، حصلت على 3 من تلك الضوابط. الآن أريد أن أحصل على مؤقت في صفحة Mainpage من شأنه أن يؤدي إلى تحديث Panels في عناصر تحكم مستخدم الويب.
كيف يمكنني إدارة هذا؟
شكرا مقدما.
المحلول
باستخدام التحكم في Ajax Timer كمشغل UpdatePanel
قم بتنفيذ وظيفة تحديث في USERCONTROL التي تستدعي الوظيفة التحديث الخاصة بألواح التحديث الخاصة بها وتسميها من صفحة MAIND في حدث Timertick لكل عنصر تحكم. قم بتعيين updateMode من updatePanels الخاص بـ UpaterTrols = مشروط.
على سبيل المثال في Codebehind الخاص بـ 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 الخاص بـ 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>
لا تنتمي إلى StackOverflow